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