LM AuthGuard第三方授权登录开发文档
一、文档概述
本文档为开发者提供 LM AuthGuard 第三方授权登录的接入指南,包含接入前准备、网站及 APP 接入流程、核心参数说明等内容。开发者需严格遵循文档规范完成接入,确保授权功能正常运行。
接入前需了解并同意以下协议,用户在使用授权功能时也需遵守相关条款:
二、接入前准备
在开始开发前,需完成账号注册与应用配置,获取核心接入参数。
2.1. 注册会员并开通应用
访问 LM AuthGuard 官网(authguard.cuoo.cn)下载官方手机APP,登录(登录即注册)并成为平台会员。
访问 LM AuthGuard 开发者后台(authguard.cuoo.cn/dev)使用同账号登录,在后台「应用管理」-「申请新应用」模块中提交应用信息(如应用图标、应用名称、权限、回调地址等),申请开通第三方授权登录功能。
2.2. 获取应用接入配置
应用审核通过后,在开发者后台的「应用管理」-「应用列表」模块中,获取接入所需的核心配置信息(如 client_id、appid 等),后续开发需使用这些参数完成对接。
三、核心参数说明
不同接入场景(网站 / APP)需使用对应的必要参数,以下为各场景的核心参数定义及用途。
| 参数名称 | 使用场景 | 参数说明 |
|---|---|---|
| client_id(appid) | 网站 或 APP | 应用唯一标识,由开发者后台生成,用于在授权流程中标识开发者应用 |
| client_secret(appKey) | 网站 | 应用密钥,用于服务端请求时的身份验证,需妥善保管,禁止泄露 |
| auth_server_url | 网站 | 服务端授权登录地址,固定为 https://authguard.cuoo.cn/auth/authorize |
| token_server_url | 网站 | 服务端获取 access_token 地址,固定为 https://authguard.cuoo.cn/auth/token |
| info_url | 网站 | 服务端获取用户信息地址,固定为 https://authguard.cuoo.cn/auth/getInfo |
| redirect_uri | 网站 | 开发者后台回调地址,用户授权后 LM AuthGuard 会将授权码(code)回调至此地址 |
| scheme_callback | APP | 开发者 APP 的 Scheme 回调地址,用户授权后 LM AuthGuard 会通过此 Scheme 跳转回开发者 APP 并携带 code |
| state | 网站 或 APP | 随机字符串,用于防 CSRF 攻击,请求时传入的 state 会在回调时原样返回,需验证一致性 |
| code | 网站 或 APP | 一次性授权码,用户授权后由 LM AuthGuard 下发,开发者需用此 code 换取 access_token |
| access_token | 网站 或 APP | 访问令牌,用于调用 info_url 获取用户信息,有有效期限制 |
四、开发者网站接入流程
网站接入通过 “发起授权请求 → 回调接收 code → 换取 access_token → 获取用户信息” 四个步骤完成授权登录。
4.1. 步骤一:配置核心参数
在网站项目中创建配置文件(如 config),填入从开发者后台获取的参数,统一管理接入地址与密钥。
需配置的参数包括:client_id、client_secret、auth_server_url、token_server_url、info_url、redirect_uri。
4.2. 步骤二:发起授权请求(用户登录入口)
在网站登录页面(如 index.html)中,生成授权链接并提供用户点击入口,引导用户跳转到 LM AuthGuard 授权页面。
生成授权链接时,需拼接 response_type=code(获取授权码)、client_id(appid)、redirect_uri、state(随机生成)等参数。
用户点击授权链接后,会跳转至 LM AuthGuard 授权页面,完成账号登录与授权操作。
4.3. 步骤三:回调接收 code 并换取 access_token
用户完成授权后,LM AuthGuard 会将用户重定向至开发者配置的 redirect_uri(如 callback.do),并携带 code 和 state 参数。
验证 state 的一致性(与发起授权请求时的 state 比对),防止 CSRF 攻击。
向 token_server_url 发起请求,携带 grant_type=authorization_code、code、client_id(appid)、client_secret(appKey)、redirect_uri 参数,换取 access_token、openid。
服务器返回 access_token 、 expires_in(有效期,秒)、openid 后,需将其和 '当前时间' 存储在开发者服务器中,以便用于后续获取用户信息。
4.4. 步骤四:通过 access_token 获取用户信息
在获取用户信息中,先验证 access_token 是否存在及是否过期。
若 access_token 未过期,向 info_url 发起请求,携带 access_token、openid 参数,获取用户基础信息(如用户唯一标识等)。
若 access_token 已过期,需清除存储的令牌信息,引导用户重新发起授权请求。
五、开发者 APP 接入流程
APP 接入通过 Scheme 跳转实现授权流程,核心是 “发起 Scheme 跳转 → 接收授权 code → 后端换取 access_token → 获取用户信息”。
5.1. 步骤一:配置必要参数
在 APP 项目中配置核心参数,包括从开发者后台获取的 appid,以及自定义的 scheme_callback(需确保该 Scheme 在 APP 中已注册,可被系统唤起)。
5.2. 步骤二:发起授权跳转
在 APP 的登录页面中,构建 LM AuthGuard 的 Scheme 授权链接,引导用户点击跳转至 LM AuthGuard APP进行授权。
Scheme 链接格式:lmauthguard://auth?appid={开发者申请的appid}&scheme_callback={开发者APP的回调地址}&state={随机串,原样返回}
其中 state 为随机生成的字符串,用于后续回调时验证,防止非法请求。
5.3. 步骤三:接收授权 code
用户在 LM AuthGuard APP 中完成授权后,系统会通过 scheme_callback 跳转回开发者 APP,并在跳转参数中携带 code 和 state。
APP 接收跳转参数后,首先验证 state 与发起请求时的一致性,确保请求合法性。
提取 code 参数,该 code 为一次性授权码,需传递给开发者后端服务器。
5.4. 步骤四:后端换取 access_token 并获取用户信息
开发者 APP 将 code 传递给后端后,由后端完成后续流程,与网站接入的步骤三、步骤四一致:
后端向 token_server_url 发起请求,携带 grant_type=authorization_code、code、client_id(appid)、client_secret(appKey)、redirect_uri 参数,换取 access_token、openid。
后端通过 access_token、openid 向 info_url 获取用户信息,处理完成后将结果返回给 APP,完成整个授权登录流程。
六、刷新 access_token
生成的 access_token 是有有效期的,通过 token_server_url 获取用户授权时 LM AuthGuard 服务端会自动检测 access_token 有效期,如未过期则在授权后返回原 access_token,如已过期则自动生成新 access_token 并返回,开发者应判断服务端返回的 access_token 是否和开发者数据库中一致,不一致则为更新后的 access_token;
开发者主动更新 access_token :通过 token_server_url 向服务端发起更新请求,具体参数如下:
grant_type=refresh_authorization_code、client_id(appid)、client_secret(appKey)、redirect_uri,通过验证服务端会返回:access_token、expires_in,开发者应妥善储存。
七、注意事项
7.1. 参数安全
client_secret(appKey)为敏感信息,仅允许在开发者服务端存储和使用,禁止在前端页面或 APP 客户端中暴露。
access_token 具有时效性,需在有效期内使用,过期后需重新发起授权流程。
7.2. 回调地址验证
网站的 redirect_uri 和 APP 的 scheme_callback 需与开发者后台配置的地址完全一致,否则授权回调会失败。
7.3. 异常处理
需处理授权流程中的各类异常情况,如 code 无效、access_token 过期、网络请求失败等,并给用户明确的提示信息。
7.4. 用户协议遵循
开发者需在 APP 或网站的登录页面,明确告知用户授权登录将遵循 LM AuthGuard 的相关协议(用户协议、隐私政策等),并提供协议查看入口。