跳到主要内容

客户端

客户端是外部应用用来让成员登录 Soln 的 OAuth 客户端。每个客户端记录应用类型、回调地址和允许的权限范围。

打开 账户中心,进入 客户端。

开始之前​

  • 应用开发者需要你提供三样东西:客户端 ID、客户端密钥,以及需要他们登记的回调地址
  • 创建客户端前先问清应用类型(Web / 桌面 / Android / iOS),因为类型创建后不可修改

应用侧要用的端点​

用途端点
发现文档<平台地址>/.well-known/openid-configuration
授权(浏览器跳转)<平台地址>/oauth/authorize
换取令牌<平台地址>/oauth/token
成员资料<平台地址>/oauth/userinfo

<平台地址> 就是成员登录 Soln 使用的地址。应用可以读取发现文档拿到准确的端点,不必把路径写死。

默认值​

字段默认值
应用类型Web 应用
允许的权限范围openid、profile、email,默认全选
回调地址空;必填,且每行一个地址

接入一个外部应用​

  1. 先准备应用侧:需要 Soln 生成的客户端 ID 和客户端密钥,以及应用要回调的地址
  2. 在 Soln 点击左侧菜单 客户端 右侧的 + 新建客户端
  3. 填写客户端名称并选择应用类型。应用类型决定需要填哪些回调地址和平台字段,创建后不可修改
  4. 按类型填写平台字段:Android 填软件包名称和 SHA-256 证书指纹;iOS 填 Bundle ID 和 10 位 Apple Team ID
  5. 选择允许的权限范围。openid、profile、email 默认全选,分别对应确认身份、基础资料和邮箱地址
  6. 按该类型的规则填写应用的回调地址,每行一个
  7. 保存客户端后,立即把弹窗里的 客户端密钥 复制下来,和客户端 ID 一起保存到应用服务端
  8. 从应用发起一次授权,再到 用户授权情况 确认成员授予的范围是否符合预期

验证一次接入​

  1. 把客户端 ID、客户端密钥和登记好的回调地址配置到应用服务端
  2. 从应用发起一次授权,用成员账号登录
  3. 在 Soln 授权页确认授予的权限范围
  4. 回到 用户授权情况:记录会出现,状态为 已授权,并带成员实际授予的范围

轮换客户端密钥​

  1. 在客户端列表对机密客户端点击 轮换密钥
  2. 从弹窗复制新密钥,更新到应用服务端;旧值保留到应用完成发布为止
  3. 公共客户端没有密钥,该操作对它不可用

常见问题​

现象检查方向
redirect_uri 被拒绝应用发送的回调地址必须与登记的地址完全一致;Android 还要确认 App Link 域名已把 /.well-known/assetlinks.json 路由到 Soln,且包名与指纹匹配
提示客户端无效客户端 ID 或客户端密钥不正确;轮换密钥后要同步更新应用服务端
申请的权限范围未获授权申请的每个范围都必须在客户端的"允许的权限范围"里
应用类型填错了类型不可修改,需要用正确的类型新建客户端
轮换密钥后应用不可用把弹窗里的新密钥更新到应用服务端;弹窗只显示一次

客户端列表​

列说明
客户端名称客户端显示名称
应用类型Web 应用、桌面应用、Android 或 iOS
客户端 ID应用在授权时携带的标识
创建时间客户端创建时间

搜索会匹配客户端名称、客户端 ID 和应用类型,客户端 ID 可以直接从列表复制。

行操作包括 编辑、轮换密钥 和 删除。轮换密钥 只对机密客户端可用,公共客户端没有密钥;删除客户端会先二次确认,删除后它的已有授权会立即停止工作。

新建或编辑客户端​

字段说明
客户端名称必填,最多 200 个字符
应用类型必填:Web 应用、桌面应用、Android 或 iOS;决定需要填写哪些回调地址,创建后不可修改
Android 软件包名称Android 必填,最多 255 个字符,例如 com.example.app
SHA-256 证书指纹Android 必填,每行一个签名证书的 SHA-256 指纹
iOS Bundle IDiOS 必填,最多 255 个字符,例如 com.example.app
Apple Team IDiOS 必填,Apple Developer 账号的 10 位 Team ID,例如 A1B2C3D4E5
允许的权限范围必填;可选范围为 openid、profile、email,新建时默认全选
回调地址必填,每行填写一个地址

回调地址按应用类型填写:

类型必填地址
Web 应用一个或多个完整且精确的公开 HTTPS 回调地址
桌面应用一个或多个本机回环地址,例如 http://127.0.0.1/oauth/callback;授权时允许使用动态端口
Android软件包名称、SHA-256 证书指纹,以及公开 HTTPS App Link;对应域名必须把 /.well-known/assetlinks.json 路由到 Soln,Android 才能校验软件包和签名证书
iOSBundle ID、Apple Developer 账号的 10 位 Team ID,以及公开 HTTPS 回调地址或使用 Bundle ID 作为 Scheme 的地址

至少需要填写一个回调地址。

客户端密钥​

新建客户端或轮换密钥会弹出一个弹窗,密钥以只读输入框展示并带复制按钮。密钥只显示一次:请立即复制并保存到应用服务端;轮换后需要同步更新应用配置,因为关闭弹窗后不会再次显示。