WEPIN Developer Documentation
WepinBlogContact
English
English
  • Get Started
    • Introduction
  • Wepin
    • Features
    • Architecture
      • Key Generation
      • Signing
      • Key Backup
    • Workspace
      • App Registration and Key Issuance
      • Networks and Assets Addition
      • Widget Design
    • Supported blockchains
    • Account Abstraction
  • login
    • Overview
    • Social Login Auth Providers
      • Email/Password
      • Google
      • Apple
      • Discord
      • Naver
      • Facebook
      • Line
      • Kakao
    • User Interface
    • Simplified Login
    • Resource
  • Widget Integration
    • Prerequisites
    • Web: JavaScript SDK
      • Login Library
        • Installation
        • Initialization
        • Methods
      • PIN Pad Library
        • Installation
        • Initialization
        • Methods
      • Widget
        • Installation
        • Initialization
        • Methods
        • Final Review
      • Provider
        • Ethereum Provider
        • Kaia Provider
        • Solana Provider
        • Wagmi Connector
      • Wallet Adapter
        • Solana Wallet Adapter
    • Android: Java & Kotlin SDK
      • Login Library
        • Installation
        • Initialization
        • Methods
      • PIN Pad Library
        • Installation
        • Initialization
        • Methods
      • Widget Library
        • Installation
        • Initialization
        • Methods
    • iOS: Swift SDK
      • Login Library
        • Installation
        • Initialization
        • Methods
      • PIN Pad Library
        • Installation
        • Initialization
        • Methods
      • Widget Library
        • installation
        • initialization
        • Methods
    • Flutter SDK
      • Login Library
        • Installation
        • Initialization
        • Methods
      • Widget
        • Installation
        • Initialization
        • Methods
        • Final Review
      • PIN Pad Library
        • Installation
        • Initialization
        • Methods
    • React Native SDK
      • Login Library
        • Installation
        • Initialization
        • Methods
    • Unity SDK
      • Installation
      • Initialization
      • Methods
      • Final Review
    • Compose Multiplatform SDK
      • Login Library
        • Installation
        • Initialization
        • Methods
      • Widget
        • Installation
        • Initialization
        • Methods
        • Final Review
  • API
    • Overview
    • Registration
    • Login
    • Wallet
    • Token and NFT
    • Transaction
  • Deprecated
    • Web: JavaScript SDK
      • SDK
        • Installation
        • Initialization
        • Methods
        • Final Review
      • Provider
        • EVM-Compatible Networks
      • Wagmi Connector
    • Android: Java & Kotlin SDK
      • Installation
      • Initialization
      • Methods
      • Final Review
    • iOS: Swift SDK
      • Installation
      • Initialization
      • Methods
      • Final Review
    • Flutter SDK
      • Installation
      • Initialization
      • Methods
      • Final Review
    • React Native SDK
      • Installation
      • Initialization
      • Methods
      • Final Review
      • Providers
        • Ethereum Providers
  • MISC
    • Logo & Brand
Powered by GitBook
On this page
  • generateRegistrationPINBlock
  • Parameters
  • Return value
  • Example
  • generateAuthPINBlock
  • Parameters
  • Return value
  • Example
  • generateChangePINBlock
  • Parameters
  • Return Value
  • Example
  • generateAuthOTP
  • Parameters
  • Return Value
  • Example
  • finalize
  • Parameters
  • Return Value
  • Example
  • login
  • Available Methods

Was this helpful?

  1. Widget Integration
  2. Android: Java & Kotlin SDK
  3. PIN Pad Library

Methods

This can be used after initializing the Wepin PIN Pad Library.

generateRegistrationPINBlock

wepinPin.generateRegistrationPINBlock()

To display the PIN pad screen to receive the PIN required for wallet creation and user registration, process the entered PIN to create a PIN Block.

Parameters

  • <void>

Return value

  • CompletableFuture <RegistrationPinBlock>

    • uvd <EncUVD>

      • b64Data <String> Data encrypted with the original key of b64SKey.

      • b64SKey <String> The key used to generate b64Data.

      • seqNum <Int> optional A value used to verify that PIN Blocks are used in sequential order.

    • hint <EncPinHint>

      • data <string> The encrypted value of the PIN hint.

      • length <string> The length of the PIN hint.

      • version <number>

      The version of the PIN hint.

Example

wepinPin.generateRegistrationPINBlock().whenComplete((res, err) -> {
    if (err == null) {
        RegistrationPinBlock registerPin = new RegistrationPinBlock(res.getUvd(), res.getHint());
        // You need to make a Wepin RESTful API request using the received data.
    } else {
        System.out.println(err);
    }
});
wepinPin.generateRegistrationPINBlock().whenComplete { res, err ->
    if (err == null) {
        registerPin = RegistrationPinBlock(uvd = res!!.uvd, hint = res!!.hint)
        // You need to make a Wepin RESTful API request using the received data.
    } else {
      println(err)
    }
}

generateAuthPINBlock

wepinPin.generateAuthPINBlock(3)

To display the PIN pad screen to receive the PIN required for user authentication and process the entered PIN to create a PIN Block. If the user has enabled 2FA (OTP), display a screen to receive the OTP code and process it as well.

Parameters

  • count <Int> optional

    The number of PIN Blocks to be generated. The default value is 1.

Return value

  • Promise <AuthPinBlock>

    • uvdList List<EncUVD> A list of encrypted PIN Blocks.

      • <EncUVD>

        • b64Data <String> Data encrypted with the original key of b64SKey.

        • b64SKey <String> The key used to generate b64Data.

        • seqNum <Int> optional A value used to verify that PIN Blocks are used in sequential order. In a Multi Tx request, PIN Blocks must be used strictly in the received order (1, 2, 3...).

    • otp <String> optional The OTP code entered by the user if they have enabled 2FA (OTP).

Example

wepinPin.generateAuthPINBlock(3).whenComplete((res, err) -> {
    if (err == null) {
        AuthPinBlock authPin = new AuthPinBlock(res.getUvdList(), res.getOtp());
        // You need to make a Wepin RESTful API request using the received data.
    } else {
        System.out.println(err);
    }
});
wepinPin.generateAuthPINBlock(3).whenComplete { res, err ->
    if (err == null) {
        authPin = AuthPinBlock(uvdList = res!!.uvdList, otp = res!!.otp)
        // You need to make a Wepin RESTful API request using the received data.
    } else {
      println(err)
    }
}

generateChangePINBlock

wepinPin.generateChangePINBlock()

To display the PIN pad screen to receive the PIN required for the user to change their PIN and process the entered PIN to create a PIN Block. If the user has enabled 2FA (OTP), display a screen to receive the OTP code and process it as well.

Parameters

  • <void>

Return Value

  • CompletableFuture <ChangePinBlock>

    • uvd <EncUVD>

      • b64Data <String> Data encrypted with the original key of b64SKey.

      • b64SKey <String> The key used to generate b64Data.

      • seqNum <Int> optional A value used to verify that PIN Blocks are used in sequential order.

    • newUVD <EncUVD>

      • b64Data <String> Data encrypted with the original key of b64SKey.

      • b64SKey <String> The key used to generate b64Data.

      • seqNum <Int> optional A value used to verify that PIN Blocks are used in sequential order.

    • hint <EncPinHint>

      • data <string> The encrypted value of the PIN hint.

      • length <string> The length of the PIN hint.

      • version <number>

      The version of the PIN hint.

    • otp <String> optional The OTP code entered by the user if they have enabled 2FA (OTP).

Example

wepinPin.generateChangePINBlock().whenComplete((res, err) -> {
    if (err == null) {
        ChangePinBlock changePin = new ChangePinBlock(res.getUvd(), res.getNewUVD(), res.getHint(), res.getOtp());
        // You need to make a Wepin RESTful API request using the received data.
    } else {
        System.out.println(err);
    }
});
wepinPin.generateChangePINBlock().whenComplete { res, err ->
    if (err == null) {
        changePin = ChangePinBlock(uvd = res!!.uvd, newUVD = res.newUVD, hint = res.hint, otp = res.otp)
        // You need to make a Wepin RESTful API request using the received data.
    } else {
      println(err)
    }
}

generateAuthOTP

wepinPin.generateAuthOTPCode()

Display a screen to receive the OTP code from the user and process it.

Parameters

  • <void>

Return Value

  • CompletableFuture <AuthOTP>

    • code <String> The entered OTP code.

Example

wepinPin.generateAuthOTPCode().whenComplete((res, err) -> {
    if (err == null) {
        AuthOTP authOTPCode = new AuthOTP(res.getCode());
        // You need to make a Wepin RESTful API request using the received data.
    } else {
        System.out.println(err);
    }
});
wepinPin.generateAuthOTPCode().whenComplete { res, err ->
    if (err == null) {
        authOTPCode = AuthOTP(res!!.code)
        // You need to make a Wepin RESTful API request using the received data.
    } else {
      println(err)
    }
}

finalize

wepinPin.finalize()

It terminates the use of the Wepin PIN Pad Library.

Parameters

  • <void>

Return Value

  • <void>

Example

wepinPin.finalize();
wepinPin.finalize()

login

Starting from WepinPin v1.1.0, the WepinLogin SDK is integrated into WepinPin. If you choose not to use the integrated WepinLogin within WepinPin and instead use a separate WepinLogin SDK, make sure both SDKs are using the same version. Using mismatched versions may cause errors.

Available Methods

These methods support various login scenarios, allowing you to choose the most appropriate option based on your needs.

Exception

Example

// Login with OAuth Provider
wepinSDK.login.loginWithOauthProvider("google", "your-client-id")
    .thenCompose { authResult ->
        // Login using ID Token
        wepinSDK.login.loginWithIdToken(authResult.idToken)
    }.thenCompose { idTokenResult ->
        // Login to Wepin
        wepinSDK.login.loginWepin(idTokenResult)
    }.thenAccept { user ->
        Log.d("WepinSDK", "Login success! User Information: $user")
    }.exceptionally { e ->
        Log.e("WepinSDK", "Login fail: ${e.message}", e)
        null
    }

// Sign up with email and password
wepinSDK.login.signUpWithEmailAndPassword(
    email = 'example@example.com', 
    password = 'password123'
).thenAccept { signUpResult ->
    Log.d("WepinSDK", "Sign up success! User Information: $user")
}.exceptionally { error ->
    if (error is WepinError) {
    }
}

// Get current logged in user information
var currentUser = wepinSDK.login.getCurrentWepinUser()
    .thenAccept { user ->
        Log.d("WepinSDK", "Current user: $user")
    }.exceptionally { e ->
        Log.e("WepinSDK", "getCurrentWepinUser fail", e)
        null
    }

// logout
wepinSDK.login.logout()
    .thenAccept { result ->
        Log.d("WepinSDK", "Logout result: $result")
    }.exceptionally { e ->
        Log.e("WepinSDK", "Logout fail", e)
        null
    }    
PreviousInitializationNextWidget Library

Last updated 1 month ago

Was this helpful?

The login object provides various authentication methods through the Wepin Login library, allowing users to log in using different methods such as email/password, OAuth providers, or ID/Access Tokens. For more details on each method, refer to the official .

Login Library Guide
loginWithOauthProvider
signUpWithEmailAndPassword
loginWithEmailAndPassword
loginWithIdToken
loginWithAccessToken
getRefreshFirebaseToken
loginWepin
getCurrentWepinUser
logout
WepinError