메서드

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

        • refreshToken wepin 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

      • refreshToken wepin firebase refreshToken

Exception

  • auth/email-verified: 회원가입을 위해 인증 이메일이 발송되었으며, 이메일 인증이 필요합니다.

  • auth/existed-email : 이미 회원가입이 되어 있는 경우

  • fail/send-email : 인증 이메일 발송에 실패한 경우

  • fail/email-verified : 이메일 인증에 실패한 경우

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)

이메일과 비밀번호로 Wepin Firebase에 로그인합니다. 로그인에 성공하면 Firebase 로그인 정보를 반환합니다.

Parameters

  • email <string> 사용자 이메일 주소

  • password <string>

    사용자 이메일 비밀번호

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)

외부 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

        • refreshToken wepin 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

        • refreshToken wepin 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
})

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:'test@abcde.com'
    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

    • refreshToken wepin 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 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()

위핀 사용자를 로그아웃 합니다.

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