基于令牌的身份验证是一种安全技术,用于验证尝试访问服务器的用户身份。该功能自 v11.0.3 版本起可用。服务会验证安全令牌并处理用户请求。
它是如何工作的?
身份验证是应用程序确认用户身份的过程。传统上,应用程序通过会话 Cookie 来维持身份,依赖于存储在服务器端的会话 ID。这迫使开发者创建会话存储,要么每台服务器单独存储,要么实现一个完全独立的会话存储层。
令牌身份验证是一种更现代的方法,旨在解决服务器端会话 ID 存储机制无法解决的问题。使用令牌代替会话 ID 可以降低服务器负载。
令牌的增删改查
作为开发者,您可以使用令牌执行完整的增删改查操作。
一旦生成了令牌,该令牌就可以用于授权您的用户发出的各个请求,这些请求会传递到您的应用程序中。您的应用程序将验证随每个请求一起发送的令牌。
API 密钥和 API 秘钥的组合构成一个令牌,该令牌用于在您的应用程序中进行身份验证,并且可以用于验证 RPC 和 REST API 的请求。
生成令牌
您可以为每个用户生成一个 api-key 和一个 api-secret,它们共同构成一个令牌。
- api-key:用于标识用户身份。
- api-secret:用于验证请求。
可以通过 Web 界面、命令行或远程过程调用(RPC)来生成 api-key 和 api-secret:
- RPC 方式:
/api/method/frappe.core.doctype.user.user.generate_keys?user="user_name" - 命令行方式:
bench execute frappe.core.doctype.user.user.generate_keys --args ['user_name'] - Web 方式:
用户 -> API 访问 -> 生成密钥
请查看 Guides / Integrations / Rest Api / Token Based Authentication 了解如何在 API 请求中使用该令牌。
注意:
- API 密钥无法重新生成。
- 只有具有系统管理员角色的用户才能生成密钥。