Files
pyGoEdge-UserPanel/reference/GoEdge API认证方案..md
2025-11-18 03:36:49 +08:00

123 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
一、认证方案概述
GoEdge 的 API 调用采用 令牌机制AccessToken 来进行用户/系统权限认证。
整体流程可简化为:
创建 AccessKey用户或管理员
使用 AccessKey 调用获取 AccessToken 接口
在后续所有 API 请求中,在 HTTP Header 中携带该 AccessToken 以认证身份
二、关键步骤详解
1. 创建 AccessKey
AccessKey 分为两种:
用户 AccessKey针对平台用户用于访问其用户相关数据
管理员 AccessKey针对系统管理员用户可操作所有管理员有权限的数据
创建方式(概况)
用户版:在「平台用户 → 用户详情 → API AccessKey」页面创建。
管理员版:在「系统用户 → 用户详情 → API AccessKey」页面创建。
2. 获取 AccessToken
接口地址:/APIAccessTokenService/getAPIAccessTokenHTTP POST
请求参数示例:
{
"type": "admin",
"accessKeyId": "<你的AccessKeyId>",
"accessKey": "<你的AccessKey>"
}
其中 "type" 字段:
值为 "user" 表示调用用户 AccessKey 获得 token
值为 "admin" 表示调用管理员 AccessKey 获得 token
响应结构示例:
{
"code": 200,
"data": {
"token": "<AccessToken字符串>",
"expiresAt": 1609686945
},
"message": "ok"
}
token 字段即为后续调用 API 时使用的 AccessToken。
expiresAt 表示该 token 的过期时间戳。
多次调用该接口会导致之前的 token 失效。
3. 使用 AccessToken 调用 API
在每次 API 请求(其它服务接口)中,需要在 HTTP Header 中加入字段:
X-Edge-Access-Token: <从上述获取接口得到的AccessToken>
来进行身份认证。
请求方法一般为 POSTURL 为 /服务/方法 形式。
三、重要注意事项 &机制要点
Token 有有效期 (expiresAt),一旦过期要重新获取。
多次获取新的 token 会使之前的 token 失效,因此应注意 token 管理。
区别 “用户” 与 “管理员” 权限:对应的 AccessKey 类型不同、权限范围不同。
每次 API 调用都必须携带 header 的 token否则将无法认证。
创建 AccessKey 前,需要在后台/平台对应页面进行授权/配置(用户/管理员视其角色而定)
四、认证方案优缺点(基于文档公开信息分析)
优点
简单易用:通过 AccessKey → 获取 token → 携带 token 调用接口,该流程直观。
分角色控制:用户 vs 管理员两种 AccessKey 类型,可以区分权限。
Token 有失效机制,有助于安全控制。
可能的局限/需注意点
未明确提及「刷新 tokenrefresh token」机制若 token 过期,需重新用 AccessKey 再次获取。
若 AccessKeytoken泄露则可能被滥用要做好保密。
文档未说明 token 是加密 JWT 还是简单字符串,也未说明 Scope权限粒度如何定义。
对于高频调用或长期服务而言,每次新的 token 使旧 token 失效,可能影响服务连续性。
五、总结一句话
在 GoEdge 的 API 中,认证方案为:“先用对应角色的 AccessKey 获取一个 AccessToken然后在所有 API 请求头中携带该 token 以识别调用者身份与权限”。