메서드

Wepin Login Library 초기화 이후 사용할 수 있습니다.

loginWithOauthProvider

await wepinLogin.loginWithOauthProvider(params)

새 창이 열리고 Wepin Firebase에 로그인합니다. 로그인에 성공하면 Firebase 로그인 정보를 반환합니다.

Parameters

  • params <object>

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

    • withLogout <boolean> optional

      • true : 이미 로그인 되어 있는 경우, 로그아웃을 하지 않음

      • false : 이미 로그인 되어 있는 경우, 로그아웃을 하고 다시 로그인 함

Return value

  • Promise <LoginResult>

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

    • token <object>

      • idToken <string> wepin firebase idToken

      • refreshToken <string> wepin firebase refreshToken

Exception

  • Invalid provider: 파라미터인 provider 값이 잘못된 경우

  • User canceled : 로그인 진행중에 사용자가 창을 닫은 경우

  • Internal error : 나머지 예외 상황이 발생한 경우

Example

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

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

signUpWithEmailAndPassWord

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

이메일과 비밀번호로 Wepin Firebase에 회원가입을 합니다. 로그인에 성공하면 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 로그인 정보를 반환합니다.

Parameters

  • params <object>

    • token <string> 로그인에 사용될 외부 IdToken 값입니다.

    • sign <string>

      첫 번째 매개변수로 제공된 token의 서명 값입니다. (Signature Generation Methods)

      서명에 사용할 키는 위핀 워크스페이스에서 발급 받을 수 있습니다. 개발 도구 메뉴에서 로그인 탭의 인증키 발급 받기를 클릭하여 인증키를 확인하세요.

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)

외부 Access Token으로 Wepin Firebase에 로그인합니다. 성공적으로 로그인하면 Firebase 로그인 정보를 반환합니다.

Parameters

  • params <object>

    • provider <'naver'|'discord'> Access Token을 발급 받은 로그인 Provider

    • token <string> 로그인에 사용될 외부 Access Token값입니다.

    • sign <string>

      두 번째 매개변수로 제공된 token의 서명 값입니다. (Signature Generation Methods)

      서명에 사용할 키는 위핀 워크스페이스에서 발급 받을 수 있습니다. 개발 도구 메뉴에서 로그인 탭의 인증키 발급 받기를 클릭하여 인증키를 확인하세요.

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);

발행자를 검증하기 위한 서명을 생성합니다. 주로 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
})

loginWepin

await wepinLogin.loginWepin({provider, token})

지정된 Login Provider와 Token을 사용하여 사용자를 Wepin에 로그인 합니다.

Parameters

이 메서드의 파라미터는 해당 모듈내의 loginWithOauthProvider(), loginWithEmailAndPassword(), loginWithIdToken(), 그리고 loginWithAccessToken() 메서드들로부터의 반환 값들을 활용해야 합니다.

  • 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'> 로그인 결괏값

    • 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