mge-oauth2-授权服务接入指南

为了方便第三方应用接入 MGEDATA 数据存储平台,我们开发小组在 MGE 平台集成了 OAuth2 授权服务。 相关授权、认证流程完全遵循 OAuth2.0 标准,这里不再赘述原理与运行流程, 不了解的可以看 RFC 6749 对 OAuth2.0 标准的定义,或者看中文版的介绍:阮一峰 - 理解OAuth 2.0。

应用申请

进入 https://www.mgedata.cn/oauth2/applications ,点击“点击此处”添加应用。 已经添加过的直接点击 “new application” 按钮。

https://s1.ax1x.com/2018/07/22/PGypuD.png

填写应用名称,client type 选择 confidential,授权类型按需选择。 ridirect uris 填写回调的 uri 地址(仅这些注册过的地址有效)。

https://s1.ax1x.com/2018/07/22/PGy9De.png

点击保存应用即可。

相关接口简单说明

授权相关

/

url

方法

参数

说明

base url

https://www.mgedata.cn/oauth2/

后面的 url 都应该接在他后面

申请认证

/authorize/

GET

response_type: 授权类型 <br /> client_id: 客户端 ID <br/> redirect_uri: 重定向 uri <br/> scope: 申请的权限范围,目前有 read, write 两种,默认值也为这两种 <br/> state: 客户端状态

申请认证,用户登录授权成功之后会跳转到重定向uri, <br/>携带 access_token 和 state(如果有,建议设置,为了安全) 参数。 <br/> code 有效期只有 60s。 成功之后再去请求token。

请求 token

/token/

POST

grant_type: 授权类型,跟申请 client_id 时候选择的一致 <br/> client_id: 客户端 ID <br/> client_secret: 客户端密钥 <br/> code: 上一步中得到的授权码 <br/> redirect_uri: 重定向 uri,跟上一步中应该一致

请求 token。

刷新 token

/token/

POST

grant_type: refresh_token <br/> token: 前面获取到的 token

刷新 token。

撤销 token

/revoke_token/

POST

token: 前面获取到的 token <br/> client_id: 客户端 ID <br/> client_secret: 客户端密钥(在confidential模式需要)

撤销 token。

获取用户信息

描述:提供模板 id ,填写该模板对应的数据,并上传。

方法与接口

` https://www.mgedata.cn/api/v1/account/o/user/info `

权限:已登录用户

参数

  • HEADER 部分

字段

类型

描述

Authorization

String

认证信息,在通过 oauth 获取了 access_token 之后,将 access_token 置于此字段,<br/> Bearer 类型,例如:Bearer Af8TR1HAmgog19BdmR99vrzEuDEG9a

  • 返回值

字段

类型

描述

code

umber

错误码,0为成功

data

Object

具体用户信息

data.username

String

用户名,唯一

data.nickname

String

昵称

data.email

String

邮箱,唯一

data.sex

String

性别,有 M, F, U 三个枚举值,分别表示 男、女、为设置

data.avatar

String

头像地址,文件后缀部分除了 lg 之外还可以是 nm 或 sm,大小分别为 200*200,100*100,30*30

data.tel

String

手机号

data.institution

String

所属机构

data.is_active

Boolean

是否有效(有些垃圾用户可能会系统置为无效或非法用户可能被拉黑,为 false 时不应存储该用户信息)

注:data 字段即为返回的用户信息所有字段,其中 username 和 email 两个字段均为唯一标识,第三方可用任意一个标识用户。

  • 示例返回值

{
  "code": 0,
  "data": {
      "username": "test",
      "nickname": "test",
      "email": "test@mge.cn",
      "sex": "U",
      "avatar": "https://www.mgedata.cn/media/avatars/default_lg.jpg",
      "tel": "",
      "institution": "",
      "is_active": true
  }
}