OAuth 2
🧑🔬 供开发者阅读的文章
如果你看不懂这个页面在说些什么,直接关闭这篇文章或者浏览其它文章即可。
忽略此文章并不会影响你正常使用 HelloSkin 的基础功能。
HelloSkin 实现了 OAuth 2 服务端。通过 OAuth 2,你可以在你的应用中集成「使用 HelloSkin 账户登录」这样的功能,并请求读取和修改用户在 HelloSkin 上的数据。
✨ 为启动器等应用带来了新的可能
HelloSkin 现已支持通过 OAuth 获取用以访问 Yggdrasil API 的 Minecraft 令牌。
创建 OAuth 2 应用
在你的应用中集成 OAuth 2 之前,你需要先在 HelloSkin 。
通过提供:
- 应用名称(将被展示在用户的授权界面上)
- 回调 URL /
redirect_uri
若要添加多条回调 URL,每条 URL 之间可使用半角逗号,
分隔
你将会被分配到:
- 客户端 ID /
client_id
- 客户端 Secret /
client_secret
获取访问令牌
对于需要鉴权的 API,需要先向用户请求授权,获取到访问令牌(Access Token)后,再向对应的 API 发起请求。
HelloSkin 支持以下授权请求方式:
使用访问令牌进行鉴权
在请求需要鉴权的 API 时,将访问令牌作为 Bearer Token 放入 HTTP 请求的 Authorization 头中,即可完成鉴权。
例如,使用访问令牌请求用户信息:
GET https://helloskin.cn/api/user HTTP/1.1
Accept: application/json
Authorization: Bearer {{access_token}}
- ✅ 如访问令牌有效,HelloSkin 将正常返回 API 响应;
- ❌ 如访问令牌无效,HelloSkin 将返回
HTTP 401 Unauthorized
错误; - ⛔ 如应用访问了用户未授权的资源,HelloSkin 将返回
HTTP 200 OK
,但 JSON 响应中将包含一个code
参数,其值为403
。
如要了解更多 API 的用法,请参阅 HelloSkin API。
不要解码令牌
请不要在代码中解码或验证任何不由你直接签发的令牌,即使其看起来像是某种你熟悉的形式——除非文档中明确说明你可以这么做。
HelloSkin 签发的令牌可以是任何形式,在代码中解码令牌可能导致你的应用在未来无法正常工作。因此,除非文档中明确说明你可以从令牌中获取信息,否则请始终将令牌视为不透明的字符串。
建议在请求中添加 Accept 头
我们建议始终在请求 API 时在 HTTP 请求中添加 Accept: application/json
头。
一般情况下,即使不添加这个头,HelloSkin API 也将返回 JSON 响应,但在部分错误情况下可能会返回意想不到的响应。因此,除文档中特别说明的情况外,请在请求中添加这个头。