cng-client-socket-io

1.0.4 • Public • Published

this is lib for client login into socket io server

1. Install first for app or web in ionic, angular, react ...

npm i cng-client-socket-io@latest

2. declare in main app such as in app.component.ts of ionic angular:

// import class from lib
import { ClientInputInterface } from "cng-client-socket-io";
 
const socketConfig =
{
  // define your app
  APP_NAME: "API-DEMO",
  // ask admin for link to connect server
  socketLink: {
    url: "https://your-domain.com",
    path: "/your-base-dir",
    timeout: 10000,
    userInfoPath: "/your-api-get-user-info",
  },
  // mã khóa được cấp
  deviceKey: {
    id:
      "your device id from admin",
    key:
      "Your device key from admin",
    created_time: "your time from admin",
  },
  // for debug
  isDebug: false,
};
 
// init client for communicate ....
const clientSocket = new ClientInputInterface(
  socketConfig.APP_NAME,
  socketConfig.deviceKey,
  socketConfig.socketLink,
  socketConfig.isDebug
);
//......
 
// waiting for device ready for login button
clientSocket
    .getDeviceId().then((deviceId) => {
    // this.isDeviceOk = deviceId;
    // device ready for login buton view
    });
 
// now `clientSocket` is object for loginByUser, register, loginByToken,... 
// set clientSocket for service make login

3. Make login page and get javascript form data in event (click)="login()":

 
// form login has username and password when user input
login(form) {
 
    let formData = form.value;
 
    if (!this.client) {
      return Promise.reject("No client socket!")
    }
    return this.client
      .loginByUser(
        formData.username,
        "email",
        formData.password,
        1   // num of date of expired
      )
      .then((tokenData) => {
          // login ok
        if (tokenData.token) {
          this.userData = tokenData; // {token,deviceId,userInfo} from server
          this.loginOk = true;
          return tokenData;
        } else {
          throw new Error("Login Fail!");
        }
      });
  }
 

4. Login by token saved:

let savedToken = this.apiStorage.read(TOKEN_KEY);
 
// login by token:
this.client
    .loginByToken(savedToken)
    .then((tokenData) => {
        // login ok
    if (tokenData.token) {
        this.userData = tokenData; // {token,deviceId,userInfo} from server
        this.loginOk = true;
        return tokenData;
    } else {
        throw new Error("Login Fail!");
    }
    });
 

5. Register new user:

// Make connection in step # 2. and make register form for input:
let userConfig = {
    loginUser: {
        username: 'your user as phone, email, ldap',
        password: 'your pass init' // remember yours
    },
    userInfo: {
        nickname: "Your nick name"
        , fullname: "Your full name"
        , address: "Your address"
        , phone: "Your phone"
        , email: "your email @ domain.dn"
    }
}
 
client.registerUser(
    userConfig.loginUser.username
    , userConfig.loginUser.password
    , userConfig.userInfo
    )
    .then(tokenData => {
        if (tokenData.userInfo) {
            console.log("successful", tokenData);
          } else {
            console.log("user exist! and your pass not true");
          }
    })

Readme

Keywords

none

Package Sidebar

Install

npm i cng-client-socket-io

Weekly Downloads

5

Version

1.0.4

License

ISC

Unpacked Size

298 kB

Total Files

19

Last publish

Collaborators

  • cuongdq