说明
本文档主要介绍与用户登录相关的客户端获取 Token 接口,及一些特殊说明,登录授权介绍请参考 OAuth授权介绍
OAuth 密码模式
- API:POST /oauth/oauth/token
- 场景:需要用户登录,通过
用户名+密码
获取 Token
OAuth 客户端模式
- API:POST /oauth/oauth/token
- 场景:无需用户登录,只获取 Token,一般用于外部系统接口调用
标准登录接口
登录接口
- API:POST /oauth/oauth/token
- 场景:仿Web端登录,需要用户登录,且需要用户输入验证码
- 请求参数
参数 | 说明 | 必输 |
---|---|---|
grant_type | 授权类型,固定 password |
Y |
client_id | 客户端ID | Y |
client_secret | 客户端密钥 | Y |
username | 登录账号:可以使用 登录账号/手机号/邮箱 进行认证 |
Y |
password | 登录密码:使用 RSA 加密后传输 | Y |
source_type | 设备来源,web-Web端/app-移动设备端 | Y |
device_id | 设备ID,可以使用UUID,用于设置 Token 的唯一性 | Y |
user_type | 用户类型:P-平台用户/C-C端用户,默认 P | N |
login_field | 登录字段,控制只能使用某个字段登录,username/phone/email,默认三个字段都支持 | N |
captcha | 用户输入的验证码 | N |
captchaKey | 生成验证码返回的 captchaKey | N |
获取初始化参数
- API:GET
/oauth/login/init-params?channel={channel}&client_id={clientId}
- 场景:进入登录页面时,调用该接口获取一些初始化信息
- 请求参数
参数 | 说明 |
---|---|
channel | 登录渠道,查询对应渠道的三方登录方式 |
clientId | 客户端ID,用于查询客户端所属租户 |
username | 用户登录失败时可以传入用户名,用于查询用户所属租户 |
- 响应参数
参数 | 说明 |
---|---|
openLoginWays | 三方登录方式 |
isNeedCaptcha | 是否需要输入图形验证码 |
生成验证码
- API:GET /oauth/public/captcha-code
- 场景:如果
isNeedCaptcha = true
,首先调用该接口获取验证码的 Key
获取图形验证码
- API:GET /oauth/public/captcha/{captchaKey}
- 场景:通过上一步得到 captchaKey 后,再调用该接口获取验证码图片
手机短信登录
登录接口
- API:POST /oauth/token/mobile
- 场景:通过
手机+短信验证码
登录,需要用户输入手机验证码
- 请求参数
参数 | 说明 | 必输 |
---|---|---|
grant_type | 授权类型,固定 implicit |
Y |
client_id | 客户端ID | Y |
client_secret | 客户端密钥 | Y |
phone | 手机号 | Y |
source_type | 设备来源,web-Web端/app-移动设备端 | Y |
device_id | 设备ID,可以使用UUID,用于设置 Token 的唯一性 | Y |
user_type | 用户类型:P-平台用户/C-C端用户,默认 P | N |
captcha | 用户输入的手机验证码 | Y |
captchaKey | 发送手机验证码返回的captchaKey | Y |
获取手机验证码
- API:/oauth/public/send-phone-captcha
接口返回说明
请求失败
可通过 success=false
判断接口是否调用失败,如果调用失败,返回失败编码 code
及消息 message
。
请求成功
请求成功则返回 access_token
接口返回码
返回编码 | 说明 |
---|---|
hoth.warn.usernameNotFound | 您输入的登录账户不存在 |
hoth.warn.phoneNotFound | 您输入的手机号未注册 |
hoth.warn.userNotActive | 您的账号未激活,无法登录 |
hoth.warn.accountLocked | 您的账户已锁定,请通过找回密码解锁,或联系平台运维中心 |
hoth.warn.accountExpire | 您的账户已过期,无法登录 |
hoth.warn.tenantInvalid | 您的所属组织无效,请联系管理员 |
hoth.warn.tenantDisabled | 您的所属组织已被禁用,请联系管理员 |
hoth.warn.passwordError | 您的密码错误,还可以尝试{0}次 |
hoth.warn.usernameNotFoundOrPasswordIsWrong | 您输入的账号或密码错误 |
hoth.warn.loginErrorMaxTimes | 密码错误次数超过限制,您的账户已锁定!请通过找回密码解锁,或联系平台运维中心! |
hoth.warn.ldapIsDisable | LDAP已被禁用 |
hoth.warn.captchaNull | 请输入验证码 |
hoth.warn.captchaWrong | 您输入的验证码有误 |
hoth.warn.phoneNotCheck | 您的手机未验证,可使用邮箱或账号登录 |
hoth.warn.emailNotCheck | 您的邮箱未验证,可使用手机或账号登录 |
hoth.warn.phoneAndEmailNotCheck | 您的手机和邮箱均未验证,可使用账号登录 |
hoth.warn.defaultTenantRoleNull | 您的默认租户下没有分配角色,请联系管理员分配角色 |
hoth.warn.loginMobileCaptchaNull | 请输入手机验证码 |
hoth.warn.validCaptchaFirst | 请先验证手机/邮箱 |
hoth.warn.accountNotEquals | 您的账号与验证的账号不一致 |
hoth.warn.captcha.sendPhoneCaptchaError | 发送手机验证码失败,请稍后重试 |
hoth.warn.phoneOrEmailNotnull | 请输入手机/邮箱 |
hoth.warn.phoneOrEmailNotFound | 您输入的手机/邮箱不存在 |
hoth.warn.phoneOrEmailNotInvalid | 您输入的手机/邮箱格式不正确 |
hoth.user.phone.not-register | 手机未注册,请先注册后再登录 |
hoth.warn.captchaNotnull | 请输入验证码 |
hoth.warn.ldapCannotChangePassword | LDAP用户不能进行修改密码操作 |
hoth.warn.roleNone | 您没有任何角色,请联系管理员分配角色 |
hoth.warn.decodePasswordError | 解码密码错误 |
hoth.warn.createClientError | 创建Token错误 |