Skip to content

用户登录认证API

/api/v2/platform/login 是智通平台用于用户登录认证的RESTful API端点。该接口支持多种登录方式,包括账号密码、手机短信、第三方应用(如微信、天翼)等,并返回包含用户信息、认证令牌及设备绑定等数据的JSON响应。


端点信息#

属性
路径/api/v2/platform/login
HTTP方法POST
功能用户身份验证与登录会话建立
数据格式请求体:application/json;响应体:application/json

请求头(Header)#

客户端可在请求头中传递以下可选参数:

字段名类型必填说明
UserIdInteger用户ID
SchoolIdInteger学校ID
TenantString租户代码
TenantCodeString租户代码

请求体参数#

请求体为JSON对象,参数如下(加粗表示条件必填):

字段名类型必填说明
userNameString用户名或手机号
passwordString条件密码,需经MD5哈希后转为大写;账号登录时必填
loginTypeint登录类型,取值见下方枚举
deviceIdString设备唯一标识
osDisplayString系统显示信息(例如 Build.DISPLAY
imeiString设备IMEI码
apString网络类型(如Wi-Fi、蜂窝)
macString条件MAC地址;若设备支持则必填,否则传空字符串
isNewboolean是否新用户
activationCodeString激活码
installTimelong应用安装时间戳(毫秒)
mdmVersionCodeintMDM客户端版本号
mdmVersionNameStringMDM客户端版本名称
forceActivateBenefitBoolean是否强制激活权益
stateString条件状态值(天翼登录时需提供)
smsCodeString条件短信验证码(手机短信登录时必填)
codeString条件二维码凭证(二维码登录时必填)
operatorIdLong条件操作员ID
boundTenantAppCodeString条件绑定的租户应用代码
boundTenantCodeString条件绑定的租户代码

登录类型(loginType#

常量名说明
0UN_KNOW未知类型
1ACCOUNT账号密码登录
3PHONE手机号登录
4PHONE_SMS手机短信验证码登录
5ACCOUNT_OR_PHONE账号或手机号登录
6WE_CHAT微信登录
9ZSCM浙数登录
10QR_XY二维码登录
13YUE_QING越清登录
15TIAN_YI天翼登录
99EDU_CLOUD教育云登录

响应#

成功响应返回一个JSON对象,映射为平台定义的 Account 数据结构。主要字段包括:

  • 用户信息userIduserNameuserType
  • 认证令牌accessTokenexpiresIn
  • 学校信息schoolIdschoolName
  • 设备绑定信息
  • 签名相关字段(如 uvrandomStr
  • 时间戳对象timestampDTO),包含服务端时间

若登录过程中需要进一步绑定(如微信首次登录),响应中会设置特定标志,客户端需据此引导用户完成后续流程。


调用流程#

典型调用链如下:

  1. 客户端构建 LoginRequest 对象,可通过工厂方法指定登录方式(如 passwordLoginphoneSMSLoginweChatLogin)。
  2. 调用 AccountRepository.userLogin(loginRequest),该方法内部转交至 AccountRemoteDataSource.userLogin()
  3. 远程数据源构造HTTP请求,填充请求头和请求体,并发送至服务端。
  4. 服务端返回响应,经 AccountRepository.unifiedDealLoginResult() 处理,解析 Account 对象,并执行后续操作:
    • 若响应中包含密钥(uvrandomStr),则写入本地文件。
    • 保存最近登录的账号、密码(可选)。
    • 更新系统时间(从 timestampDTO 中获取)。
    • 处理班级列表、租户代码等附加信息。
    • 触发消息客户端注册、签名状态更新等。
  5. 最终返回 Observable<Account> 对象,供调用方订阅。

实现备注#

  • 密码字段在发送前强制进行MD5加密并转换为大写字母。
  • MAC地址字段仅在设备支持时传递;否则置为空字符串。
  • 登录成功后,客户端需处理服务端下发的密钥信息,这些信息可能用于后续加密通信。
  • 响应解析失败或状态异常时,会抛出相应的异常(如 ResponseExceptionWeChatLoginException),调用方需妥善处理。

引用来源#

  • 实现源码:AccountRemoteDataSource.java
  • 请求对象工厂:LoginRequest.java
  • 登录类型常量:LoginRequest.java
  • 响应处理逻辑:AccountRepository.java

Connected to 1 page

登录首页