- 10 - Dify中的Bearer Token与API-Key鉴权方式
- 一.service_api蓝图与API-Key鉴权
- 1.service_api蓝图
- 2.validate_app_token装饰器
- 二.console蓝图与Bearer Token鉴权(用户登录操作)
- 1.AccountService.authenticate()方法
- 2. AccountService.login()方法
- 3.AccountService.reset_login_error_rate_limit()方法
- 三.console蓝图与Bearer Token鉴权(用户登出操作)
- 1./console/api/logout接口
- 2.AccountService.logout()
- 四.Web蓝图与Bearer Token鉴权
- 1.Web蓝图
- 2.validate_jwt_token装饰器
- 参考文献
10 - Dify中的Bearer Token与API-Key鉴权方式
10 - Dify中的Bearer Token与API-Key鉴权方式
2024年12月10日修改
本文使用Dify v0.10.2版本,在Dify中包括Bearer Token与API-Key鉴权这2种方式。console(URL前缀/console/api)和web(URL前缀/api)蓝图使用的是Bearer Token鉴权方式,而service_api(URL前缀/v1)蓝图使用的是API-Key鉴权方式。console蓝图通过login_required装饰器[1]实现,web蓝图通过继承WebApiResource,即validate_jwt_token装饰器实现,而service_api通过validate_app_token装饰器实现。
一.service_api蓝图与API-Key鉴权
API-Key与Bearer Token鉴权区别,如下所示:
特性 | API-Key | Bearer Token |
定义 | 一种用于识别调用者身份的密钥 | 一种令牌,表示用户已经通过认证 |
格式 | 通常为简单的字符串 | 通常为 "Bearer <token>" 格式 |
存储位置 | 可以在请求头、URL 查询参数或请求体中 | 通常存储在请求头中 |
认证过程 | 直接使用 API-Key | 需要通过认证流程获取令牌 |
有效期 | 通常没有有效期或长期有效 | 通常有有效期(如几分钟到几小时) |
安全性 | 相对较低,容易被截获 | 更高,通过过期和刷新机制提高安全性 |
使用场景 | 简单的 API 访问 | 用户身份验证和授权 |
撤销机制 | 需要手动更换或删除 API-Key | 可以通过令牌失效或刷新实现 |