WEPIN Developer Documentation
WepinBlogContact
한국어
한국어
  • 시작하기
    • 소개
  • 위핀
    • 특징
    • 아키텍처
      • 키 생성
      • 서명
      • 키 백업
    • 워크스페이스
      • 앱 등록 및 키 발급
      • 네트워크 및 자산 추가
      • 위젯 디자인
    • 지원 블록체인
    • 계정 추상화
  • 로그인
    • 개요
    • 소셜 로그인 인증 프로바이더
      • Email/Password
      • Google
      • Apple
      • Discord
      • Naver
      • Facebook
      • Line
      • Kakao
    • 사용자 인터페이스
    • 로그인 일원화
    • 리소스
  • 위젯 연동
    • 사전 준비
    • Web: JavaScript SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
      • 프로바이더
        • Ethereum Provider
        • Kaia Provider
        • Solana Provider
        • Wagmi Connector
      • 월렛 어댑터
        • Solana Wallet Adapter
    • Android: Java & Kotlin SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
    • iOS: Swift SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
    • Flutter SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
    • React Native SDK
      • 로그인
        • 설치
        • 초기화
        • 메서드
    • Unity SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • Compose Multiplatform SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
  • API
    • 개요
    • 등록 절차
    • 로그인
    • 지갑 생성 및 관리
    • 토큰 및 NFT 조회
    • 트랜잭션
  • Deprecated
    • Web: JavaScript SDK
      • SDK
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
      • 프로바이더
        • Ethereum Provider
      • Wagmi Connector
    • Android: Java & Kotlin SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • iOS: Swift SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • Flutter SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • React Native SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
      • 프로바이더
        • EVM 호환
  • 기타
    • 로고 & 브랜드 가이드라인
Powered by GitBook
On this page
  • loginWithOauthProvider
  • Parameters
  • Return value
  • Exception
  • Example
  • signUpWithEmailAndPassWord
  • Parameters
  • Return Value
  • Exception
  • Example
  • loginWithEmailAndPassWord
  • Parameters
  • Return Value
  • Example
  • loginWithIdToken
  • Parameters
  • Return Value
  • Example
  • loginWithAccessToken
  • Parameters
  • Return Value
  • Example
  • getSignForLogin
  • Parameters
  • Return Value
  • Example
  • getRefreshFirebaseToken
  • Parameters
  • Return Value
  • Example
  • sendVerifyEmail
  • Supported Version
  • Parameters
  • Return Value
  • Example
  • loginWepin
  • Parameters
  • Return Value
  • Example
  • logout
  • Parameters
  • Return Value
  • Exception
  • Example
  • finalize
  • Parameters
  • Return Value
  • Example

Was this helpful?

  1. 위젯 연동
  2. Web: JavaScript SDK
  3. 로그인

메서드

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

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

    인증 키를 이전에 생성한 경우에만 인증 키 메뉴가 표시됩니다.

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

    인증 키를 이전에 생성한 경우에만 인증 키 메뉴가 표시됩니다.

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

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

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

        • refreshToken wepin 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> 등록하고 인증할 이메일 주소

    • 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

  • 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 token

      • accessToken <string> Wepin Access Token

      • refreshToken Wepin 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": "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()

Previous초기화하기Next핀 패드

Last updated 1 month ago

Was this helpful?

이메일과 비밀번호로 Wepin Firebase에 회원가입을 합니다. 가입되지 않은 사용자의 경우 검증 이메일이 전송되며, auth/email-verified오류가 발생합니다. 이미 가입된 사용자의 경우, auth/existed-email 오류가 발생하며 를 호출하여 로그인 프로세스를 진행합니다. 로그인에 성공하면 Firebase 로그인 정보를 반환합니다.

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

@wepin/login-js 버전 0.0.29 부터 sign 값은 옵셔널로 변경되었습니다. 에서 인증 키를 제거하면, 서명(sign) 값을 사용하지 않을 수 있습니다.

( > Development Tools menu > Login tab > Auth Key> Delete)

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

@wepin/login-js 버전 0.0.29 부터 sign 값은 옵셔널로 변경되었습니다. 에서 인증 키를 제거하면, 서명(sign) 값을 사용하지 않을 수 있습니다.

( > Development Tools menu > Login tab > Auth Key> Delete)

provider <string> Firebase 로그인 프로바이더. 소문자로 ‘google’, ‘naver’, ‘discord’, ‘apple’, ‘facebook’, ‘line’ 등의 지원되는 프로바이더 중 하나여야 합니다. 지원되는 로그인 프로바이더의전체 목록은 문서를 참조하세요.

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

Signature Generation Methods
Wepin Workspace
Wepin Workspace
Signature Generation Methods
Wepin Workspace
Wepin Workspace
Wepin Social Login Auth Provider
loginWithEmailAndPassword
loginWithOauthProvider()
loginWithEmailAndPassword()
loginWithIdToken()
loginWithAccessToken()