Methods

Methods can be used after initializing the Wepin Login Library.

loginWithOauthProvider

await wepinLogin.loginWithOauthProvider(params)

Logs in to Wepin Firebase in a new window. Returns Firebase login information upon successful login.

Parameters

  • params <object>

    • provider <'google'|'naver'|'discord'|'apple'> - Provider for Firebase login

    • withLogout <boolean> optional

      • true : Does not log out if already logged in.

      • false : Logs out and logs in again if already logged in.

Return value

  • Promise <LoginResult>

    • provider <'google'|'apple'|'discord'|'naver'>

    • token <object>

      • idToken <string> wepin firebase idToken

      • refreshToken <string> wepin firebase refreshToken

Exception

  • Invalid provider: If the provider parameter is incorrect

  • User canceled : If the user closes the window during login

  • Internal error : For other exceptions

Example

const user = await wepinLogin.loginWithOauthProvider(true)
  • response

    {
        "provider": "google",
        "token": {
            "idToken": "ab2231df....ad0f3291",
            "refreshToken": "eyJHGciO....adQssw5c",
        }
    }

signUpWithEmailAndPassWord

await wepinLogin.signUpWithEmailAndPassword(email, password, openWepinWallet?)

Signs up to Wepin Firebase using email and password. Returns Firebase login information upon successful sign-up.

Parameters

  • email <string> User email address

  • password <string>

    User email password

  • openWepinWallet <boolean> optional Whether to show the Wepin Wallet authentication email page

Return Value

  • Promise<LoginResult>

    • provider <'email'>

    • token <object>

      • idToken <string> wepin firebase idToken

      • refreshToken wepin firebase refreshToken

Exception

  • auth/email-verified: A verification email has been sent, email verification is required

  • auth/existed-email : The email is already registered

  • fail/send-email : Failed to send verification email

  • fail/email-verified : Email verification failed

Example

const user = await wepinLogin.signUpWithEmailAndPassword('abc@defg.com', 'abcdef123&')
  • response

    {
        "provider": "email",
        "token": {
            "idToken": "ab2231df....ad0f3291",
            "refreshToken": "eyJHGciO....adQssw5c",
        }
    }

loginWithEmailAndPassWord

await wepinLogin.loginWithEmailAndPassword(email, password)

Logs in to Wepin Firebase using email and password. Returns Firebase login information upon successful login.

Parameters

  • email <string> User email address

  • password <string>

    User email password

Return Value

  • Promise<LoginResult>

    • provider <'email'>

    • token <object>

      • idToken <string> wepin firebase idToken

      • refreshToken wepin firebase refreshToken

Example

const user = await wepinLogin.loginWithEmailAndPassword('abc@defg.com', 'abcdef123&')
  • response

    {
        "provider": "email",
        "token": {
            "idToken": "ab2231df....ad0f3291",
            "refreshToken": "eyJHGciO....adQssw5c",
        }
    }

loginWithIdToken

await wepinLogin.loginWithIdToken(params)

Logs in to Wepin Firebase using an external IdToken. Returns Firebase login information upon successful login.

Parameters

  • params <object>

    • token <string> External IdToken used for login

    • sign <string>

      Signature of the token provided as the first parameter (Signature Generation Methods) You can obtain the key to be used for the signature from the Wepin Workspace. In the developer tools menu, click on the "Issue Authentication Key" in the login tab to check the authentication key.

Return Value

  • Promise<LoginResult>

    • provider <'external_token'>

    • token <object>

      • idToken <string> wepin firebase idToken

      • refreshToken wepin firebase refreshToken

Example

const user = await wepinLogin.loginWithIdToken({
    token:'eyJHGciO....adQssw5c', 
    sign:'9753d4dc...c63466b9'
})
  • response

    {
        "provider": "external_token",
        "token": {
            "idToken": "ab2231df....ad0f3291",
            "refreshToken": "eyJHGciO....adQssw5c",
        }
    }

loginWithAccessToken

await wepinLogin.loginWithAccessToken(params)

Logs in to Wepin Firebase using an external Access Token. Returns Firebase login information upon successful login.

Parameters

  • params <object>

    • provider <'naver'|'discord'> Login provider from which the Access Token was issued

    • token <string> External Access Token used for login

    • sign <string>

      Signature of the token provided as the second parameter (Signature Generation Methods) You can obtain the key to be used for the signature from the Wepin Workspace. In the developer tools menu, click on the "Issue Authentication Key" in the login tab to check the authentication key.

Return Value

  • Promise<LoginResult>

    • provider <'external_token'>

    • token <object>

      • idToken <string> wepin firebase idToken

      • refreshToken wepin firebase refreshToken

Example

const user = await wepinLogin.loginWithAccessToken({
    provider: 'naver', 
    token:'eyJHGciO....adQssw5c', 
    sign:'9753d4dc...c63466b9'
})
  • response

    {
        "provider": "external_token",
        "token": {
            "idToken": "ab2231df....ad0f3291",
            "refreshToken": "eyJHGciO....adQssw5c",
        }
    }

getSignForLogin

import {getSignForLogin} from '@wepin/login-js'
const result = getSignForLogin(privKey, message);

It generates a signature to verify the issuer. Mainly used to generate signatures for login-related information such as IdToken and Access Token.

Parameters

  • privKey <string> Authentication key used to generate the signature

  • message <string> Message or payload to be signed

The key for signing can be obtained from Wepin Workspace. In the Development Tools menu, click Get your authentication key on the Login tab to retrieve the authentication key.

Return Value

  • <string>

    Signature value

The authentication key (privKey) should be stored securely and not exposed externally. To enhance security and protection of sensitive information, it is recommended to execute the getSignForLogin() method on the backend rather than the frontend.

Example

const privKey = '0400112233445566778899001122334455667788990011223344556677889900'
const idToken = 'idtokenabcdef'
const sign = getSignForLogin(privKey, idToken)

const res = await wepinLogin.loginWithIdToken({
    token: idToken, 
    sign
})

loginWepin

await wepinLogin.loginWepin({provider, token})

It logs the user into Wepin using the specified Login Provider and Token.

Parameters

The parameters for this method should utilize the return values from the loginWithOauthProvider(), loginWithEmailAndPassword(), loginWithIdToken(), and loginWithAccessToken() methods within this module.

  • provider <'google'|'apple'|'naver'|'discord'|'external_token'|'email'> Login Provider

  • token <object>

    • idToken <string> wepin firebase idToken

    • refreshToken wepin firebase refreshToken

Return Value

  • Promise<IWepinUser>

    • status <'success'|'fail'> Login result

    • userInfo <object> optional Information of the logged-in user

      • userId <string> User's Wepin ID

      • email <string> User's email address

      • provider<'google'|'apple'|'naver'|'discord'|'email'|'external_token'> Logged-in Provider

      • use2FA <boolean> Whether 2FA is enabled for the user

    • userStatus <object> Status information of the logged-in user

      • loginStats: <'complete' | 'pinRequired' | 'registerRequired'> If not 'complete', registration with Wepin is required

      • pinRequired <boolean> optional Whether the user's PIN number is required

    • token <object> User's wepin firebase token

      • idToken <string> wepin firebase idToken

      • refreshToken wepin firebase refreshToken

Example

const wepinLogin = WepinLogin({ appId: 'appId', appKey: 'appKey' })
const res = await wepinLogin.loginWithOauthProvider({ provider: 'google' })

const userInfo = await wepinLogin.loginWepin(res)
const userStatus = userInfo.userStatus
if(userStatus.loginStatus === 'pinRequired'||userStatus.loginStatus === 'registerRequired') {
    // wepin register
}
  • response

{
    "status": "success",
    "userInfo": {
      "userId": "120349034824234234",
      "email": "abc@gmail.com",
      "provider": "google",
      "use2FA": true,
    },
    "walletId": "abcdsfsf123",
    "userStatus": {
        "loginRequired": "completed",
        "pinRequired": false,
    },
    "token": {
        "accessToken": "",
        "refreshToken": "",
    }
}

logout

await wepinLogin.logout()

It logs out the Wepin user.

Parameters

  • <void>

Return Value

  • Promise <boolean>

    true if successful

Exception

  • Wepin login module Not initialized: If the Wepin Login Library has not been initialized

  • Already logout : If the user is already logged out

Example

const result = await wepinLogin.logout()

finalize

wepinLogin.finalize()

It terminates the use of the Wepin Login Library.

Parameters

  • <void>

Return Value

  • <void>

Example

wepinLogin.finalize()

Last updated