sohagame-auth

Login với tài khoản sohagame

Usage no npm install needed!

<script type="module">
  import sohagameAuth from 'https://cdn.skypack.dev/sohagame-auth';
</script>

README

Giới thiệu

Package hỗ trợ việc login với sohagame từ client

Cài đặt

Sử dụng npm để cài đặt package. Chạy lệnh sau trong cửa sổ command line

npm install sohagame-auth

Sử dụng

Import và khởi tạo với các tham số sau:

  • app_id (string) : id của ứng dụng muốn đăng nhập.
  • env (string): tham số môi trường .
    • prod : Môi trường product (Mặc định).
    • beta : Môi trường beta.
    • dev : Môi trường dev.
import SohagameAuth from 'sohagame-auth'

var SHGAuth = new SohagameAuth({
    app_id: "21005e7c6680a5d2e8ee2ce1512e13d1",
    env: "prod"
});

Đăng nhập sử dụng phương thức login() với tham số như sau:

  • callback (string) : Địa chỉ redirect về sau khi đăng nhập thành công.
  • popup(0 hoặc 1, mặc định là 0) : Nếu = 1 sẽ mở cửa sổ window mới thay vì redirect
  • lang(string) :
    • vi : Tiếng việt (Mặc định)
    • en : English.
var login = () => {
    SHGAuth.login({
        callback: window.location.origin
    });
}

var loginPopup = () => {
    SHGAuth.login({
        callback: window.location.origin,
        popup: 1
    });
}

return (
    <div className="App">
       <button onClick={login}>LOGIN</button>
       <button onClick={loginPopup}>LOGIN POPUP</button>
    </div>
);

Đăng xuất sử dụng phương thức logout() với tham số như sau:

  • callback (string) : Địa chỉ redirect về sau khi đăng xuất thành công.
var logout = () => {
    SHGAuth.logout({
        callback: window.location.origin
    });
}

return (
    <div className="App">
       <button onClick={logout}>LOGOUT</button>
    </div>
);

Lấy thông tin user đã đăng nhập sử dụng phương thức getUser():

var userInfo= await SHGAuth.getUserInfo();

Xác định đã đăng nhập hay chưa với phương thức isLoggedIn():

if(SHGAuth.isLoggedIn()){
  // logged in
}

Lấy access_token sau khi đăng nhập thành công bằng phương thức getAccessToken()

var access_token = SHGAuth.getAccessToken();

Demo

import logo from './logo.svg';
import './App.css';
import SohagameAuth from 'sohagame-auth'
import React, { useState,useEffect} from 'react';

function App() {
  const [userInfo, setUserInfo] = useState({});
  var SHGAuth = new SohagameAuth({
    app_id: "21005e7c6680a5d2e8ee2ce1512e13d1",
  });

  useEffect(() => {
    getUser();
  }, []);

  var login = () => {
    SHGAuth.login({
        callback: window.location.origin
    });
  }

  var logout = () => {
    var callback = window.location.origin;
    SHGAuth.logout({
        callback
    });
  }

  var loginPopup = () => {
    SHGAuth.login({
        callback: window.location.origin,
        popup: 1
    });
  }

  async function getUser(){
    var info = await SHGAuth.getUserInfo();
    setUserInfo(info);
  }

  return (
    <div className="App">
      <header className="App-header">
      { (userInfo && userInfo.id != null)
        ? <>
            <img src={userInfo.avatar} alt="logo" width={200} />
            <div>Email : {userInfo.email}</div>
            <div>UserID : {userInfo.id}</div>
            <div>Username : {userInfo.username}</div>
            <br/>
            <button onClick={logout}>LOGOUT</button>
          </>
        : <>
            <img src={logo} className="App-logo" alt="logo" width={200} />
            <button onClick={login}>LOGIN</button>
          </>
      }
      </header>
    </div>
  );
}

export default App;

Chi tiết xem trong repository (./sohagame-auth/demo): Tại đây