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

3.2 KiB
Raw Blame History

一、认证方案概述

GoEdge 的 API 调用采用 令牌机制AccessToken 来进行用户/系统权限认证。

整体流程可简化为:

创建 AccessKey用户或管理员

使用 AccessKey 调用获取 AccessToken 接口

在后续所有 API 请求中,在 HTTP Header 中携带该 AccessToken 以认证身份

二、关键步骤详解

  1. 创建 AccessKey

AccessKey 分为两种:

用户 AccessKey针对平台用户用于访问其用户相关数据

管理员 AccessKey针对系统管理员用户可操作所有管理员有权限的数据

创建方式(概况)

用户版:在「平台用户 → 用户详情 → API AccessKey」页面创建。

管理员版:在「系统用户 → 用户详情 → API AccessKey」页面创建。

  1. 获取 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 失效。

  1. 使用 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 以识别调用者身份与权限”。