Authing DocsDocuments
Concept
Guides
Development Integration
Application integration
Concept
Guides
Development Integration
Application integration
Old Version
Guides
  • Quick start

    • Authenticate your first user

      • Use the hosted login page to complete the authentication
      • Use the embedded login component to complete the authentication
      • Use API & SDK to complete authentication
      • Verify user credentials (token)
      • Authority management for users
      • Realize logout
      • Next you may need
    • Access methods for different types of applications

      • Integrate Authing in traditional Web App
      • Integrate in Single Page Application (SPA) Authing
      • Integrate in mobile terminal (iOS, Andriod) Authing
    • Console overview
  • Authenticate the user

    • Use account password authentication
    • Use SMS verification code authentication
    • Use social login authentication
    • Use scan code login authentication

      • Use self-built App to scan the code to log in to the website

        • Complete interface list
        • Custom configuration items
      • Use the mini program to scan the code to log in to the website
    • Certify in Mini Program
    • Implement single sign-on (SSO)
    • Single sign-on on the mobile terminal
    • Multi-factor authentication (MFA)

      • MFA of one-time password (TOTP) based on timestamp algorithm
      • MFA based on SMS verification code
      • MFA based on email verification code
      • Access MFA through SDK
    • Extend the authentication process

      • Add user-defined fields
      • IdToken add custom field
      • Use a custom database to authenticate users
      • Use Pipeline to extend the authentication process
      • Use Webhook to monitor authentication events
    • Personalize the guard
  • Authority management for users

    • Choose the appropriate permission model
    • Integrate RBAC permission model into your application system
    • Integrate ABAC permission model into your application system
    • Use permission group management permission resources
    • Manage resource permissions
  • Authorization

    • Inter-application authorization for user permission
    • M2M authorization
  • Manage user accounts

    • User field interpretation
    • Administrator create account
    • Manage user accounts
    • Binding account
    • Manage user's custom data
    • View user's login history
    • View the user's geographic location
    • Enhance account security
    • Manage user login status
    • Control which applications users can access
    • User groups
  • Manage User Directory

    • User Directory Configuration Item
    • Add custom user field
    • Search users
    • Use LDAP user directory
  • Management Application

    • Create Application
    • Configure login and registration method
    • Add registration agreement
    • Customize login box style
    • Become a source of federal authentication identity
    • Enable multi-factor authentication
    • Sub-account management
    • Implement single sign-on between applications
    • Manage user login status
  • Become a source of federal authentication identity

    • Become an OpenID Connect Identity Source
    • Become OAuth2.0 Identity Source
    • Become a SAML2 identity source
    • Become a CAS Identity Source
  • Connect to an external identity provider (IdP)

    • Social Identity Provider

      • WeChat QR Code on PC
      • Mini Program QR Code on PC
      • WeChat Official Accounts QR Code
      • Mobile App Use WeChat Login
      • Mobile App Use WeChat Mini Program Login
      • WeChat Web Page
      • WeChat Mini Program
      • Tencent QQ
      • Sina Weibo
      • GitHub
      • Facebook
      • Twitter
      • Google
      • Apple Mobile
      • Apple Web
      • Alipay
      • Slack
      • Gitee
      • GitLab
      • Baidu
      • NetEase YIDUN
      • QingCloud
      • Instagram
      • LinkedIn
    • Enterprise Identity Provider

      • WeCom Self-built App QR Code
      • WeCom Self-built App QR Code Login(Delegated Development Mode)
      • WeCom Service Provider App QR Code
      • WeCom Mobile
      • DingTalk H5 Micro Application (Internal Development)
      • Feishu Marketplace App
      • Feishu Custom App
      • Windows AD
      • Azure AD
      • OIDC
      • OAuth 2.0
      • LDAP
      • SAML
      • CAS
      • WeLink
    • Custom database

      • Configure database connection and scripting
      • Lazy migration of users to Authing
      • Fully use a custom database to save user data
      • Best Practice
  • Open up WeChat ecology
  • Migrate users to Authing

    • Use SDK to import users
    • Configure custom password function
    • Import users from corporate WeChat, DingTalk and other third-party identity sources
  • Management organization

    • Create or import an organization
    • Management organization
    • Manage member life cycle
    • Use LDAP protocol to open organization data to the outside world
  • Expandable capabilities

    • Use Webhook to monitor user events
    • Custom authentication process (Pipeline)

      • Create your first Pipeline function
      • Pipeline API Reference
      • Pipeline application scenario
      • Pipeline User Object
      • Pipeline Context Object
      • Use environment variables in Pipeline
      • Available Node Modules
      • How to debug
      • FAQ
      • Private deployment
    • Configure custom password function
  • Audit Log

    • Audit of user behavior
    • Audit of Administrator Behavior
  • Configure security information

    • Configure Web Security Domain
    • Configure password strength
    • Configure registration frequency limit
    • Configure the limit on the number of failed login attempts
  • Configure user pool information

    • Modify user pool basic information
    • Configure mail service and template
    • Configure SMS service and template
    • Add user pool collaboration administrator
    • Developer Configuration
  • Deployment plan

    • Basic deployment mode
    • Docker deployment mode
    • Kubernetes deployment mode
    • Custom Domain Name Configuration Scheme
  • Frequently Asked Questions FAQs

    • How to get user pool ID
    • How to get the application ID
    • How to verify user credentials (token)
    • Join table Authing in the local user and your business data
    • Impact of disabling third-party cookies on Authing
    • How to deploy a transit proxy server
  1. Guides
  2. /
  3. Quick start

  4. /
  5. Authenticate your first user
  6. /
  7. Use API & SDK to complete authentication

¶ Use API & SDK to authenticate

Update Time: 2022-05-14 10:21:54
Edit

In the previous guide, you have learned how to use the login page hosted by Authing and the embedded login component to implement the login and registration process. Not only that, we also provide HTTP APIs in two forms, RESTful and GraphQL, and SDKs in more than ten different languages and frameworks. You can flexibly build the authentication process you need based on combining these API & SDK resources.

¶ Choose the SDK you are familiar with

Authing also supports SDKs in various languages ​​such as Java, JavaScript/Node.js, Python, PHP, C#, Swift, Go, Ruby, WeChat applet, etc. You can choose the SDK you are familiar with:

  • Java/Kotlin
  • JavaScript/Node.js
  • Python
  • PHP
  • C#
  • Swift
  • Go
  • Ruby
  • Wechat

¶ Initialize SDK

Language
Java
Loading...

Use the UserPool ID and AppID to initialize the AuthenticationClient of the Java SDK:

import cn.authing.core.auth.AuthenticationClient;
// Use  AppId 和 appHost 进行初始化
AuthenticationClient authentication = new AuthenticationClient(APP_ID, APP_HOST);

¶ Use SDK to authenticate users

Take the SMS code login (if the user account does not exist, an account will be created first) as an example:

First, send a SMS verification code:

Language
Java
Loading...

Send SMS code using sendSmsCode method.

String phone = "phone number";
authenticationClient.sendSmsCode(phone).execute();

And then, use the SMS code to login.

Language
Java
Loading...

Use loginByPhoneCode method to login.

String phone = "phone number";
String code = "1234";
User user = authenticationClient.loginByPhoneCode(new LoginByPhoneCodeInput(phone, code)).execute();

After successfully logging in, you can get the user's information. The token field in user information is the identity credential. In the following steps, you need to carry it in requests when you want to access back-end resources. The back end will verify this token.

¶ Verify user token

The token field of the user information is a standard OIDC IdToken. You can use the Application ID and Secret to validate this token on the backend.

An example of token is like this:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1ZjIxNTFiZWFlNWE4YjRjZTZiMGJhZTkiLCJiaXJ0aGRhdGUiOiIiLCJmYW1pbHlfbmFtZSI6IiIsImdlbmRlciI6IiIsImdpdmVuX25hbWUiOiIiLCJsb2NhbGUiOiIiLCJtaWRkbGVfbmFtZSI6IiIsIm5hbWUiOiIiLCJuaWNrbmFtZSI6IiIsInBpY3R1cmUiOiJodHRwczovL3VzZXJjb250ZW50cy5hdXRoaW5nLmNuL2F1dGhpbmctYXZhdGFyLnBuZyIsInByZWZlcnJlZF91c2VybmFtZSI6InRlc3RAZXhhbXBsZS5jb20iLCJwcm9maWxlIjoiIiwidXBkYXRlZF9hdCI6IjIwMjEtMDEtMThUMDc6NDg6NTUuNzgxWiIsIndlYnNpdGUiOiIiLCJ6b25laW5mbyI6IiIsImFkZHJlc3MiOnsiY291bnRyeSI6IiIsInBvc3RhbF9jb2RlIjoiIiwicmVnaW9uIjoiIiwiZm9ybWF0dGVkIjoiIn0sInBob25lX251bWJlciI6bnVsbCwicGhvbmVfbnVtYmVyX3ZlcmlmaWVkIjpmYWxzZSwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJkYXRhIjp7InR5cGUiOiJ1c2VyIiwidXNlclBvb2xJZCI6IjVhOWZhMjZjZjg2MzVhMDAwMTg1NTI4YyIsImFwcElkIjoiNjAwNTNiNzQxNjQ3OGRlMmU4OGZhYjQzIiwiaWQiOiI1ZjIxNTFiZWFlNWE4YjRjZTZiMGJhZTkiLCJ1c2VySWQiOiI1ZjIxNTFiZWFlNWE4YjRjZTZiMGJhZTkiLCJfaWQiOiI1ZjIxNTFiZWFlNWE4YjRjZTZiMGJhZTkiLCJwaG9uZSI6bnVsbCwiZW1haWwiOiJ0ZXN0QGV4YW1wbGUuY29tIiwidXNlcm5hbWUiOiJ0ZXN0QGV4YW1wbGUuY29tIiwidW5pb25pZCI6bnVsbCwib3BlbmlkIjpudWxsLCJjbGllbnRJZCI6IjVhOWZhMjZjZjg2MzVhMDAwMTg1NTI4YyJ9LCJ1c2VycG9vbF9pZCI6IjVhOWZhMjZjZjg2MzVhMDAwMTg1NTI4YyIsImF1ZCI6IjYwMDUzYjc0MTY0NzhkZTJlODhmYWI0MyIsImV4cCI6MTYxMjE2NTg4OCwiaWF0IjoxNjEwOTU2Mjg4LCJpc3MiOiJodHRwczovL3NhbXBsZS1hcHAuYXV0aGluZy5jbi9vaWRjIn0.SNyGBffF-zBqDQFINGxUJZrWSAADHQhbEOsKvnH4SLg

You can decode this IdToken in this website (opens new window):

Basically all languages provide libraries for validating IdToken. You can choose the language you are familiar with:

Language
Java
Loading...

In Java, you can use java-jwt (opens new window) to validate IdToken:

String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9.eyJpc3MiOiJhdXRoMCJ9.AbIJTDMFc7yUa5MhvcP03nJPyCPzZtQcGEp-zWfOkEE";
try {
    Algorithm algorithm = Algorithm.HMAC256("secret");
    JWTVerifier verifier = JWT.require(algorithm)
        .withIssuer("auth0")
        .build(); //Reusable verifier instance
    DecodedJWT jwt = verifier.verify(token);
} catch (JWTVerificationException exception){
    //Invalid signature/claims
}

If the validation is successful, you can get the user information of the id_token, where the sub field is the user ID, and the aud field is the application ID. You can click here to understand the detailed definition of each field of IdToken.

¶ Next

After identifying the user, you may also need to perform privilege management on the user to determine whether the user has privilege to operate on this API.

Prev: Use the embedded login component to complete the authentication Next: Verify user credentials (token)
  • Choose the SDK you are familiar with
  • Initialize SDK
  • Use SDK to authenticate users
  • Verify user token
  • Next

User identity management

Integrated third-party login
Mobile phone number flash check (opens new window)
Universal login form component
Custom authentication process

Enterprise internal management

Single Sign On
Multi-factor Authentication
Authority Management

Developers

Development Document
Framework Integration
Blog (opens new window)
GitHub (opens new window)
Community User Center (opens new window)

Company

400 888 2106
sales@authing.cn
16 / F, Block B, NORTH STAR CENTURY CENTER, Beijing(Total)
room 406, 4th floor, zone B, building 1, No. 200, Tianfu Fifth Street, Chengdu(branch)

Beijing ICP No.19051205-1

© Beijing Steamory Technology Co.