上线这个论坛的时候,发现 Mixin API 的 OAuth 一直都是不完全符合规范的,于是顺手把 API 搞得标准化了一些,主要有 3 个修改。
用户信息
所有用户相关的 API 返回值都增加了 email 字段,因为大部分 OAuth 标准服务都需要这个值。这个值的构造是类似 25566@mixin.id 这样子的。
请求体的 Content-Type
之前在请求 POST /oauth/token
时 Mixin API 强制需要 application/json
类型,但是标准的 OAuth 都是用的 application/x-www-form-urlencoded
,所以也就同时兼容了一下,两种格式都支持了。
Access Token 返回值
之前 Mixin API 所有的返回值都放在了 {data:{}}
这样的字段下,而 OAuth 标准需要所有字段在最顶层结构下,所以现在的 POST /oauth/token
返回值就成了下面这个样子
{
"token_type": "Bearer",
"access_token": "TOKEN",
"scope": "PROFILE:READ",
"data":{
"token_type": "Bearer",
"access_token": "TOKEN",
"scope": "PROFILE:READ"
}
}
这些更新既符合了标准,也不会影响过去使用 Mixin API 进行 OAuth 登录的应用。符合标准的好处是一些标准的 OAuth SDK 就可以直接使用了。