帮助文档
SSO单点登录使用指南
子敬
2021.06.28 13:36发布于帮助文档
1.65k0

利用第三方账号登录BBScloud

单点登录(Single-Sign-On)允许您使用第三方的系统来验证BBScloud的用户并进行登录。

配置SSO单点登录

image.png

名词解释

1 远程登录URL

启用单点登录后,您的BBScloud站点将不再提供登录和注册链接,首页的登录会直接跳转至您配置的第三方登录URL,你需要做的是在您的站点授权后根据回调地址将您的用户信息授权给我们即可。

2 远程登出URL

启用单点登录后,您的BBScloud站点将不再提供登出操作,你需要配置一个登出的URL,在您退出登录时我们会访问这个URL,在您的站点做好用户注销登录操作即可。

API通信密钥

在您配置完成后您会获得一个API通信密钥,这是您用来加密的唯一验证。请注意妥善保管。
注:API通信密钥保存后即可获得,每次保存都会更新,更新后旧版本密钥失效
image.png

loginRedirect

这是需要您在登录后回调的地址;

示例:您配置的登录URL是 https://simple.bbscloud.com/LoginSimple,在您点击登录操作后,我们会跳转至您的登录URL并告知回调地址 https://demo.bbscloud.com/loginRedirect,再经过您的授权认证后,你需要以GET请求回调。我们在收到您的请求后自动完成登录或注册操作。

请求的完整URL应该是 https://demo.bbscloud.com/loginRedirect?openId={simple.openId}&username={simple.username}&mobile={simple.mobile}&email={simple.email}&avatar={simple.avatar}&time={simple.time}&sign={simple.sign}

参数名称 参数类型 是否必填 备注
openId String 唯一用户标识(建议使用本系统的用户id)
username String 用户名,示例:小明,格式要求汉字、符号、英文,不超过64个字符
mobile String 手机号,示例:17664050000
email String 邮箱,示例:tunynet@tuoyu.com
avatar String 头像,示例:https://avatar.com
time Long 时间戳 ,示例:1585293835
sign String 签名

sign签名

  1. 加密方式,MD5加密,32位小写;
  2. 加密顺序按照 ASCII 码 顺序拼接参数值,可空字段为空时时无需拼接,最后拼接 API通信密钥 进行加密;正确的顺序应当是 avatar(空值不参与) + email(空值不参与) + mobile + openId + time + username + 密钥
  3. sign不参与加密;
  4. time为您加密前获取的时间戳,示例:1585293835 ,在完成授权登录前该值保持不变。

代码示例.Net:

string sign = ""; StringBuilder sb = new (); if (!string.IsNullOrWhiteSpace(user.Avatar)) sb.Append(user.Avatar); if (!string.IsNullOrWhiteSpace(user.Email)) sb.Append(user.Email); if (!string.IsNullOrWhiteSpace(user.Mobile)) sb.Append(user.Mobile); sb.Append(user.OpenId); var time = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000; sb.Append(time); if (!string.IsNullOrWhiteSpace(user.Avatar)) sb.Append(user.Avatar); if (!string.IsNullOrWhiteSpace(user.UserName)) sb.Append(user.UserName); sb.Append(Configuration.GetValue<string>("SSOLoginKey")); using (var md5 = MD5.Create()) { string sbResult = sb.ToString(); var result = md5.ComputeHash(Encoding.UTF8.GetBytes(sbResult)); sign = BitConverter.ToString(result).Replace("-", "").ToLower(); }

SSODemo.zip 1.11MB

对我有用 1
收藏
手机查看
举报
OAuth客户端使用指南
BBScloud自有域名绑定教程
0个评论
倒序看帖
仅看楼主

暂无数据