Skip to content

单点登录(SSO) API 接入文档

概述

本文档描述如何通过跳转链接的方式实现用户身份鉴权及单点登录,适用于第三方应用快速接入登录验证。


接入流程

  1. 在您的网站或应用中生成带时间戳、用户名与签名的跳转链接。
  2. 引导用户访问该链接。
  3. 系统验证签名与时间戳有效性后,自动完成登录。

链接格式

http://{你的域名}/#/index/apilogin?timestamp=1770372682&username={你的账号}sign=609bc34f47dafa317b5b2f2342a6fa02

参数说明

参数名类型必填说明
timestampint当前时间戳(Unix 时间戳,精确到秒),链接有效期为 10 分钟
usernamestring用户的登录标识,支持 手机号邮箱
signstring根据 timestamp 和 username 及 Secret 计算得到的 MD5 签名,用于安全校验

签名生成规则

  1. 将参数 timestampusernametimestamp=值&username=值 的格式拼接。
    • 示例:timestamp=1770372682&username=13800138000
  2. 在拼接后的字符串末尾加上您的 Secret 密钥(由系统提供)。
    • 示例:timestamp=1770372682&username=13800138000YourSecretKey
  3. 将最终字符串进行 MD5 加密(32位小写),得到签名。
    • 示例:sign = md5("timestamp=1770372682&username=13800138000YourSecretKey")

注意:参数顺序必须严格按照上述顺序拼接,Secret 密钥需妥善保管,不可泄露。


示例代码(签名计算)

以下为 Python 示例代码:

python
import hashlib
import time

secret = "YourSecretKey"  # 请替换为实际密钥,在系统管理配置-单点登录-API接入获取
timestamp = int(time.time())
username = "13800138000"

# 拼接参数
raw_str = f"timestamp={timestamp}&username={username}{secret}"
# 生成 MD5 签名
sign = hashlib.md5(raw_str.encode()).hexdigest()

print(f"timestamp: {timestamp}")
print(f"username: {username}")
print(f"sign: {sign}")

注意事项

  1. 链接必须在 timestamp 对应时间起的 10 分钟内使用,否则失效。
  2. 签名验证失败或参数错误将跳转至登录失败页。
  3. 请确保服务器时钟与接入系统时钟同步,避免时间戳偏差。
  4. username 需使用 URL 编码(如果包含特殊字符)。

返回结果

用户访问链接后,系统将自动完成登录并跳转至指定首页(或原请求页),无需额外页面操作。


如遇到问题,请联系系统管理员获取 Secret 密钥或协助调试。