SDK for Java

Authing SDK for Java

JDK 版本 1.8

Github 地址:https://github.com/Authing/authing-java-sdk

安装

创建项目

在 IDEA 中新建一个项目

创建项目 - 1

选择 Gradle,在右侧的额外依赖中勾选 Java 和 Kotlin:

创建项目 - 2

填写其他信息:

创建项目 - 3
创建项目 - 4

添加依赖

进入 IDE,等待 Gradle 构建完毕,打开 build.gradle 文件:

打开 build.gradle 文件

在右侧红色箭头处增加以下内容:

如下图所示,根据提示开启 Auto-import 功能:

开启 Auto-import

开始使用

在 java 文件夹下创建一个 Class,命名为 Demo。

创建 Java Class

在类的 main 函数中,引入 Authing 开始使用

导入 Authing

Android 注意

如果用于 Android 开发,需要在 AndroidManifest 文件中加入 INTERNET 权限。

快速上手

先从 Authing 控制台中获取 UserPool ID,然后调用初始化函数,初始化调用一次即可。在 Android 开发中,推荐放在 Application 中进行初始化。

如何构建参数对象

SDK 接口函数参数对象需要先进行构建,然后再传入。

创建参数构造器并初始化必填参数

使用参数构造器添加可选参数

创建参数对象

SDK 总览

Authing SDK 提供了授权服务 (OAuthService)、用户服务 (UserService)、用户管理服务 (UserManageService) 和验证服务 (VerifyService),你可以直接通过 Authing.getOAuthService,Authing.getUserService,Authing.getUserManageService,Authing.getVerifyService 获取相关实例。

调用方式

同步调用

SDK 提供了同步异步两种调用方式,适用不同的场景。

若需要等待返回结果处理后面的数据,比较适合同步调用,例如:

异步调用

如果是在 Android 的主线程中,则需使用异步调用(当然你也可以在子线程中使用同步调用),例如:

错误处理

同步调用不会返回错误,所以推荐使用异步调用。 在 onFailure 中会返回错误,你可以通过 error.getCode() 获取错误代码。了解更多报错的详情,请查看错误代码列表。

用户服务

初始化

Authing.getUserService() 请按照以下方式初始化 User 相关服务:

创建用户

如果你希望用手机号注册用户,可以使用 loginByPhone (手机验证码登录)方法,该方法在用户不存在的时候会自动创建。

userService.createUser(params)

  • params {Object}

    • params.unionid {String},unionid 和 email 参数只能填写一个

    • params.email {String},unionid 和 email 参数只能填写一个

    • params.password {String},不填 unionid 时必填,填 unionid 时不填

    • params.username {String},可选,用户名

    • params.company {String},可选,公司

    • params.lastIP {String},可选,上次登录 IP 地址

    • params.oauth {String},可选,用户社会化登录信息或其他自定义数据

    • params.photo {String},可选,头像

示例:

邮箱登录

userService.loginByEmail(params)

  • params {Object}

    • params.email {String},必填,用户邮箱

    • params.password {String},必填,用户密码

示例:

手机验证码登录

userService.loginByPhone(params)

  • params {Object}

    • params.phone {String},手机号

    • params.verifyCode {Int},短信验证码

示例:

LDAP 登录

userService.loginByLDAP(params)

  • params {Object}

    • params.username {String},必填,用户名

    • params.password {String},必填,密码

示例:

使用 OIDC Password 模式登录

userService.loginByOidc(params)

  • params {Object}

    • params.client_id {String},必填,OIDC 应用 ID

    • params.client_secret {String},必填,OIDC 应用密钥

    • params.phone {String},选填,phone/email/username/unionid 互斥

    • params.email,选填,phone/email/username/unionid 互斥

    • params.username,选填,phone/email/username/unionid 互斥

    • params.unionid,选填,phone/email/username/unionid 互斥

    • params.password,unionid 未填时必填,使用 unionid 登录时不填

    • params.phone {String},选填,phone/email/username/unionid 互斥

    • params.email,选填,phone/email/username/unionid 互斥

    • params.username,选填,phone/email/username/unionid 互斥

    • params.unionid,选填,phone/email/username/unionid 互斥

    • params.password,unionid 未填时必填,使用 unionid 登录时不填

示例:

刷新 OIDC Token

userService.refreshOidcToken(params)

  • params {Object}

    • params.client_id {String},必填,OIDC 应用 ID

    • params.client_secret {String},必填,OIDC 应用密钥

    • params.refresh_token {String},必填,刷新 token

示例:

登录

userService.signIn(params)

  • params {Object}

    • params.phone {String},选填,phone/email/username/unionid 互斥

    • params.email,选填,phone/email/username/unionid 互斥

    • params.username,选填,phone/email/username/unionid 互斥

    • params.unionid,选填,phone/email/username/unionid 互斥

    • params.password,unionid 未填时必填,使用 unionid 登录时不填

示例:

刷新 signIn Token

userService.refreshSignInToken(params)

  • params {Object}

    • params.refresh_token {String},必填,刷新 token

示例:

刷新用户 Authing Token

userService.refreshToken(params)

  • params {Object}

    • params.userId {String},必填,用户 ID

示例:

获取用户信息

userService.user(params)

  • params {Object}

    • params.userId {String},必填,用户 ID

示例:

更新用户信息

userService.updateUserInfo(params)

  • params {Object}

    • params.userId {userId},必填,用户 ID

    • params.blocked {Boolean},可选,是否被锁定

    • params.browser {String},可选,浏览器信息

    • params.company {String},可选,公司

    • params.email {String},可选,邮箱

    • params.emailVerified {Boolean},可选,邮箱是否被验证

    • params.lastLogin {String},可选,上次登录时间

    • params.lastIP {String},可选,上次登录 IP 地址

    • params.loginsCount {Int},可选,登录次数

    • params.nickname {String},可选,昵称

    • params.signUp {String},可选,注册时间

    • params.photo {String},可选,头像

    • params.password {String},可选,密码

    • params.token {String},可选,Authing Token

    • params.tokenExpiredAt {String},可选,Authing Token 过期时间

    • params.username {String},可选,用户名

示例:

查询用户登录状态

userService.checkLoginStatus(params)

  • params {Object}

    • params.token {String},必填,用户 Authing Token

示例:

重置密码

userService.resetPasword(params)

  • params {Object}

    • params.email {String},必填,用户邮箱

    • params.password {String},必填,用户新密码

    • params.verifyCode {String},必填,验证码

示例:

授权服务

初始化

Authing.getOAuthService() 请按照以下方式初始化授权相关服务:

解绑邮箱

oauthService.unbindEmail(params)

  • params {Object}

    • params.userId {String},必填,用户 ID

示例:

读取用户池开启的社会化登录列表

oauthService.readOAuthList()

示例:

验证服务

初始化

Authing.getVerifyService()

请按照以下方式初始化验证服务:

发送邮箱验证邮件

verifyService.sendVerifyEmail(params)

  • params {Object}

示例:

发送手机验证码

verifyService.sendPhoneVerifyCode(phone)

  • phone {String},必填,手机号

示例:

发送重置密码邮件

verifyService.sendResetPasswordEmail(params)

  • params {Object}

    • params.email {String},必填,邮箱地址

示例:

验证重置密码的验证码

verifyService.verifyResetPasswordCode(params)

  • params {Object}

    • params.email {String},必填,邮箱地址

    • params.verifyCode {String},必填,验证码

示例:

用户管理服务

初始化

Authing.getUserManageService()

请按照以下方式初始化用户管理相关服务:

批量获取用户信息

userManageService.getUserInfo(params)

  • params {Object}

    • params.addUserId {String},必填,需要查询的用户的 ID

示例:

获取用户列表

userManageService.getUserList(params)

  • params {Object}

    • params.page {Int},选填,默认为 1

    • params.count {Int},选填,默认为 10

示例:

删除用户

userManageService.removeUser(params)

  • params {Object}

    • params.userId,必填,用户 ID

示例:

Demo

完整的使用案例请参考:https://github.com/Authing/authing-java-sdk/tree/master/testdemo

Last updated

Was this helpful?