OAuth客户端使用指南

@小明
发布于 2020.03.26 15:10
202 0

BBScloud授权登录第三方应用

如果希望利用BBScloud授权登录您的其他应用,请创建OAUTH客户端,基于OAUTH2.0协议引导BBScloud向其他网站授权。

创建OAuth客户端

image.png

名词解释

1 应用名称

您可以设置您的应用名称,这将会显示在您的应用请求授权的页面上;

2 安全域名

在这里需要您设置可用的安全回调域名;授权前我们会验证您的域名是否合法;只有配置安全域名才能够回调成功。域名不需要要包含https://或http,我们推荐使用配置具备ssl证书的域名。

示例: www.bbscloud.com

配置成功

配置成功后您将获取到 app_idapp_secret请妥善保管您的密钥。它将成为您访问的必要验证参数。

对接OAuth客户端

请求url地址,如果您使用的是创建站点是分配的域名或修改的二级域名,例如 1000001.bbscloud.comb.bbscloud.com,在请求的时候请求url对应的就是上面的地址,如果您使用的是您自己的域名,请求地址就是* https://youdomain.com*,示例 https://bbs.jielingguanjian.com

1 获取Authorization Code

1.1 请求描述

  1. 请求方式:post
  2. 请求地址:/api/sso/oauth_code
  3. 编码格式: application/json
参数名称 参数类型 是否必填 备注
client_id String 配置OAuth时分配的app_id
client_secret String 配置OAuth时分配的app_secret
response_type String 固定值code

1.2 返回结果描述

字段名 字段类型 备注
type int 请求返回值,正常情况会返回1
data String code值,返回状态为1时会给您返回code
description String 描述文字,当type不为1时我们会返回对应的错误信息

1.3 返回结果示例


{
    "type": 1,
    "data": "3b9997523f7a49e8ae5811c6dc1efdd5",
    "description" : ""
}

2 登录授权

根据获取到的code您可以拼接授权访问链接,并跳转至这个地址,示例:

/loginAuth?client_id=[YOUR_APPID]&response_type=code&code=[code}&redirect_uri=[YOUR_REDIRECT_URI]&state=hello

如果用户已经有登录态,会出现一个确认页。如果还没有登录,会先进行登录,如下图所示:

image.png

如果用户点击“授权并登录”,则成功跳转到指定的redirect_uri,并跟上Authorization Token(注意此token会在5分钟内过期)。
例如回调地址是:www.bbscloud.com/callback,则会跳转到:

https://www.bbscloud.com/callback?token=520DD95263C1CFEA0870FBB66E******

3 根据Token获取用户信息

1.1 请求描述

  1. 请求方式:get
  2. 请求地址:/api/sso/userInfo
  3. 编码格式: multipart/form-data
参数名称 参数类型 是否必填 备注
access_token String 通过callback得到的token

1.2 返回结果描述

字段名 字段类型 备注
id bigint 用户Id
userName String 用户名
accountEmail String 用户邮箱(可能为空)
accountMobile String 用户手机号
error String 错误码,正常返回 0
error_description String 错误描述

1.3 返回结果示例


{
	"error" : 0,
	"id" : 12,
	"userName" : "张三",
	"accountEmail" : "aaa@zzz.com",
	"accountMobile" : "18888888888",
	"avatar" : "377609792979603456.png"
}

1.4 错误码对应关系

错误码 描述 解决方案
-1 授权版本过低,不允许三方登录 升级到专业及以上版本
-2 调用接口凭证无效 access_token已过期,重新发起登录授权
-3 用户不存在
0个回复
仅看楼主
倒序看帖
楼层直达
暂无回复