메서드
Wepin Login Library 초기화 이후 사용할 수 있습니다.
loginWithOauthProvider
await wepinLogin.loginWithOauthProvider(params)새 창이 열리고 Wepin Firebase에 로그인합니다. 로그인에 성공하면 Firebase 로그인 정보를 반환합니다. required/register_email오류 메시지를 반환하면 sendVerifyEmail 메서드를 호출해야 합니다.
Parameters
- params<object>- provider<'google'|'naver'|'discord'|'apple'|'line'|'facebook'> - Provider for Firebase login
- withLogout<boolean> optional- true : 이미 로그인 되어 있는 경우, 로그아웃을 하지 않음 
- false : 이미 로그인 되어 있는 경우, 로그아웃을 하고 다시 로그인 함 
 
 
Return value
- Promise<LoginResult | LoginErrorResult>- <LoginResult> - provider<'google'|'naver'|'discord'|'apple'|'line'|'facebook'>
- token<object>- idToken<string> wepin firebase idToken
- refreshTokenwepin firebase refreshToken
 
 
- <LoginErrorResult> - error<string> error message
- idToken<string> optional id token value
- accessToken<string> optional accessToken token value
- provider<'google'|'naver'|'discord'|'apple'|'line'|'facebook'> optional Provider that issued the access token
 
 
Exception
- Invalid provider: 파라미터인 프로바이더값이 잘못된 경우
- User canceled: 로그인 진행중에 사용자가 창을 닫은 경우
- Internal error: 나머지 예외 상황이 발생한 경우
Example
const user = await wepinLogin.loginWithOauthProvider(true)- response - LoginResult - { "provider": "google", "token": { "idToken": "ab2231df....ad0f3291", "refreshToken": "eyJHGciO....adQssw5c", } }
- LoginErrorResult - { "error": "required/register_email", "provider": "naver", "accessToken": "eyJHGciO....adQssw5c", }
 
 signUpWithEmailAndPassWord
await wepinLogin.signUpWithEmailAndPassword(email, password, openWepinWallet?)이메일과 비밀번호로 Wepin Firebase에 회원가입을 합니다. 가입되지 않은 사용자의 경우 검증 이메일이 전송되며, auth/email-verified오류가 발생합니다. 이미 가입된 사용자의 경우, auth/existed-email 오류가 발생하며 loginWithEmailAndPassword를 호출하여 로그인 프로세스를 진행합니다. 로그인에 성공하면 Firebase 로그인 정보를 반환합니다.
Parameters
- email<string> 사용자 이메일 주소
- password<string>- 사용자 이메일 비밀번호 
- openWepinWallet<boolean> optional Wepin Wallet의 인증 이메일 전송 페이지가 보이게 할지 여부
Return Value
- Promise<LoginResult>- provider<'email'>
- token<object>- idToken<string> wepin firebase idToken
- refreshTokenwepin firebase refreshToken
 
 
Exception
- auth/email-verified: 회원가입을 위해 인증 이메일이 발송되었으며, 이메일 인증이 필요합니다.
- auth/existed-email: 이미 회원가입이 되어 있는 경우
- fail/send-email: 인증 이메일 발송에 실패한 경우
- fail/email-verified: 이메일 인증에 실패한 경우
Example
const user = await wepinLogin.signUpWithEmailAndPassword('[email protected]', 'abcdef123&')- response 
    {
        "provider": "email",
        "token": {
            "idToken": "ab2231df....ad0f3291",
            "refreshToken": "eyJHGciO....adQssw5c",
        }
    }loginWithEmailAndPassWord
await wepinLogin.loginWithEmailAndPassword(email, password)이메일과 비밀번호로 Wepin Firebase에 로그인합니다. 로그인에 성공하면 Firebase 로그인 정보를 반환합니다.
Parameters
- email<string> 사용자 이메일 주소
- password<string>- 사용자 이메일 비밀번호 
Return Value
- Promise<LoginResult>- provider<'email'>
- token<object>- idToken<string> wepin firebase idToken
- refreshTokenwepin firebase refreshToken
 
 
Example
const user = await wepinLogin.loginWithEmailAndPassword('[email protected]', 'abcdef123&')- response 
    {
        "provider": "email",
        "token": {
            "idToken": "ab2231df....ad0f3291",
            "refreshToken": "eyJHGciO....adQssw5c",
        }
    }loginWithIdToken
await wepinLogin.loginWithIdToken(params)외부 IdToken으로 Wepin Firebase에 로그인합니다. 성공적으로 로그인하면 Firebase 로그인 정보를 반환합니다. required/register_email오류 메세지를 반환하면 sendVerifyEmail 메서드를 호출해야 합니다.
Parameters
- params<object>- token<string> 로그인에 사용될 외부 IdToken 값입니다.
- sign<string> optional- 첫 번째 매개변수로 제공된 - token의 서명 값입니다. (Signature Generation Methods)
 - @wepin/login-js버전 0.0.29 부터- sign값은 옵셔널로 변경되었습니다. Wepin Workspace에서 인증 키를 제거하면, 서명(- sign) 값을 사용하지 않을 수 있습니다.- (Wepin Workspace > Development Tools menu > Login tab > Auth Key> Delete) - 인증 키를 이전에 생성한 경우에만 인증 키 메뉴가 표시됩니다. 
Return Value
- Promise<LoginResult | LoginErrorResult>- <LoginResult> - provider<'external_token'>
- token<object>- idToken<string> wepin firebase idToken
- refreshTokenwepin firebase refreshToken
 
 
- <LoginErrorResult> - error<string> error message
- idToken<string> optional id token value
 
 
Example
const user = await wepinLogin.loginWithIdToken({
    token:'eyJHGciO....adQssw5c', 
    sign:'9753d4dc...c63466b9'
})- response - LoginResult - { "provider": "external_token", "token": { "idToken": "ab2231df....ad0f3291", "refreshToken": "eyJHGciO....adQssw5c", } }
- LoginErrorResult - { "error": "required/register_email", "idToken": "eyJHGciO....adQssw5c", }
 
loginWithAccessToken
await wepinLogin.loginWithAccessToken(params)외부 Access Token으로 Wepin Firebase에 로그인합니다. 성공적으로 로그인하면 Firebase 로그인 정보를 반환합니다. required/register_email오류 메세지를 반환하면 sendVerifyEmail 메서드를 호출해야 합니다.
Parameters
- params<object>- provider<'naver'|'discord'|'facebook'> Access Token을 발급 받은 로그인 Provider
- token<string> 로그인에 사용될 외부 Access Token값입니다.
- sign<string> optional- 두 번째 매개변수로 제공된 - token의 서명 값입니다. (Signature Generation Methods)
 - @wepin/login-js버전 0.0.29 부터- sign값은 옵셔널로 변경되었습니다. Wepin Workspace에서 인증 키를 제거하면, 서명(- sign) 값을 사용하지 않을 수 있습니다.- (Wepin Workspace > Development Tools menu > Login tab > Auth Key> Delete) - 인증 키를 이전에 생성한 경우에만 인증 키 메뉴가 표시됩니다. 
Return Value
- Promise<LoginResult | LoginErrorResult>- <LoginResult> - provider<'external_token'>
- token<object>- idToken<string> wepin firebase idToken
- refreshTokenwepin firebase refreshToken
 
 
- <LoginErrorResult> - error<string> error message
- accessToken<string> optional accessToken token value
- provider<string> optional Provider that issued the access token
 
 
Example
const user = await wepinLogin.loginWithAccessToken({
    provider: 'naver', 
    token:'eyJHGciO....adQssw5c', 
    sign:'9753d4dc...c63466b9'
})- response - LoginResult - { "provider": "external_token", "token": { "idToken": "ab2231df....ad0f3291", "refreshToken": "eyJHGciO....adQssw5c", } }
- LoginErrorResult - { "error": "required/register_email", "provider": "naver", "accessToken": "eyJHGciO....adQssw5c", }
 
getSignForLogin
import {getSignForLogin} from '@wepin/login-js'
const result = getSignForLogin(privKey, message);발행자를 검증하기 위한 서명을 생성합니다. 주로 IdToken 및 Access Token과 같은 로그인 관련 정보의 서명을 생성하는 데 사용됩니다.
Parameters
- privKey<string> 서명 생성에 사용되는 인증 키입니다.
- message<string> 서명될 메세지 또는 페이로드입니다.
Return Value
- <string> - 서명값 
인증 키(privKey)는 안전하게 보관해야 하며 외부에 노출되어서는 안 됩니다. 민감한 정보의 보안과 보호를 강화하기 위해 getSignForLogin() 메서드는 프론트 엔드가 아닌 백엔드에서 실행하는것을 권장합니다.
Example
const privKey = '0400112233445566778899001122334455667788990011223344556677889900'
const idToken = 'idtokenabcdef'
const sign = getSignForLogin(privKey, idToken)
const res = await wepinLogin.loginWithIdToken({
    token: idToken, 
    sign
})getRefreshFirebaseToken
import {getRefreshFirebaseToken} from '@wepin/login-js'
const result = getSignForLogin(privKey, message);Wepin에서 현재 Firebase 토큰의 정보를 가져옵니다.
Parameters
- prevFBToken<LoginResult> optional- provider<'google'|'naver'|'discord'|'apple'|'line'|'facebook'>
- token<object>- idToken<string> wepin firebase idToken
- refreshTokenwepin firebase refreshToken
 
 
@wepin/login-js version 0.0.33부터prevFBToken 이 parameter 에 추가되었습니다.
Return Value
- Promise<LoginResult>- <LoginResult> - provider<'google'|'naver'|'discord'|'apple'|'line'|'facebook'>
- token<object>- idToken<string> wepin firebase idToken
- refreshTokenwepin firebase refreshToken
 
 
 
Example
// Without parameter (legacy way)
const result = await wepinLogin.getRefreshFirebaseToken()
// With prevFBToken parameter (since v0.0.33)
const prevToken = {
    provider: 'google',
    token: {
        idToken: 'previous_id_token',
        refreshToken: 'previous_refresh_token'
    }
}
const result = await wepinLogin.getRefreshFirebaseToken(prevToken)sendVerifyEmail
await wepinLogin.sendVerifyEmail(params)sendVerifyEmail 메서드는 이메일 등록 및 이메일 인증 요청을 수행합니다. required/register_email 오류가 발생한 경우, 이메일을 등록하고 인증을 요청해야 합니다. 인증이 완료되면 loginWithAccessToken 또는 loginWithIdToken 메서드를 사용하여 처음 로그인 시 사용했던 AccessToken 또는 IdToken으로 다시 로그인합니다.
Supported Version
- 버전 - 0.0.18이상에서 지원
Parameters
- params<ISendVerifyEmailParams>- email<string> 등록하고 인증할 이메일 주소
- provider<string> Firebase 로그인 프로바이더. 소문자로 ‘google’, ‘naver’, ‘discord’, ‘apple’, ‘facebook’, ‘line’ 등의 지원되는 프로바이더 중 하나여야 합니다. 지원되는 로그인 프로바이더의전체 목록은 Wepin Social Login Auth Provider 문서를 참조하세요.
- idToken<string> 로그인에 사용될 id token 값
- accessToken<string> 로그인에 사용될 access token 값
 
Return Value
- Promise<boolean> 
Example
const res = await wepinLogin.sendVerifyEmail({
    email:'[email protected]'
    provider: 'naver', 
    accessToken:'eyJHGciO....adQssw5c', 
})loginWepin
await wepinLogin.loginWepin({provider, token})지정된 Login Provider와 Token을 사용하여 사용자를 위핀에 로그인 합니다.
Parameters
이 메서드의 파라미터는 해당 모듈내의 loginWithOauthProvider(), loginWithEmailAndPassword(), loginWithIdToken(), 그리고 loginWithAccessToken() 메서드들로부터의 반환 값들을 활용해야 합니다.
- provider<'google'|'apple'|'naver'|'discord'|'line'|'facebook'|'external_token'|'email'> Login Provider
- token<object>- idToken<string> wepin firebase idToken
- refreshTokenwepin firebase refreshToken
 
Return Value
- Promise<IWepinUser>- status<'success'|'fail'> 로그인 결괏값
- userInfo<object> optional 로그인된 사용자의 정보- userId <string> 사용자의 Wepin ID 
- email <string> 사용자의 email 주소 
- provider<'google'|'apple'|'naver'|'discord'|'email'|'external_token'> 로그인한 Provider 
- use2FA <boolean> 사용자의 2FA 설정 여부 
 
- userStatus<object> 로그인된 사용자의 상태정보- loginStats: <'complete' | 'pinRequired' | 'registerRequired'> 'complete'가 아닌 경우, 위핀에 회원가입(등록)을 해야됩니다.
- pinRequired<boolean> optional 사용자 PIN 번호의 필요 여부
 
- token<object> 사용자의 wepin token- accessToken<string> Wepin Access Token
- refreshTokenWepin Refresh Token
 
 
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": "[email protected]",
      "provider": "google",
      "use2FA": true,
    },
    "walletId": "abcdsfsf123",
    "userStatus": {
        "loginRequired": "completed",
        "pinRequired": false,
    },
    "token": {
        "accessToken": "",
        "refreshToken": "",
    }
}logout
await wepinLogin.logout()위핀 사용자를 로그아웃 합니다.
Parameters
- <void> 
Return Value
- Promise<boolean>- 성공인 경우 true 
Exception
- Wepin login module Not initialized: Wepin Login Library가 초기화 되지 않은 경우
- Already logout: 사용자가 이미 로그아웃된 상태인 경우우
Example
const result = await wepinLogin.logout()finalize
wepinLogin.finalize()Wepin Login Library 사용을 종료합니다.
Parameters
- <void> 
Return Value
- <void> 
Example
wepinLogin.finalize()Last updated
Was this helpful?
