gpt4 book ai didi

rest - 使用REST api的Guid token 而不是用户名/密码进行基本身份验证

转载 作者:行者123 更新时间:2023-12-03 08:48:31 25 4
gpt4 key购买 nike

总览

我正在使用PhoneGap和REST API开发后端的移动应用程序。 REST API不会被第三方开发人员使用,而是特定于应用程序的,因此无需实现oAuth。因此,我计划使用“基本身份验证”,在“用户”中输入其用户名/密码来访问API资源。所有API通信都将基于SSL。

带 token 的基本身份验证

与让应用程序存储用户名/密码并将其随每个请求发送给API相比,我宁愿在第一个登录请求上对用户名/密码进行身份验证并向后发送GUID token 。客户端存储此GUID token ,并通过授权 header 将 token 与每个请求一起发送回API,如下所示:

Authorization: Basic e1d9753f-a508-46cc-a428-1787595d63e4



在服务器端,用户名/ GUID组合将随设备设置一起存储在服务器上,并带有到期日期。这将允许跟踪用户已登录的设备数量,以及在Guid到期后终止 session 。

这种方法听起来合理且安全吗?

最佳答案

完全不需要您创建自定义 header 或身份验证方案。
Bearer认证方案是专门为您的用例设计的:

Authorization: Bearer e1d9753f-a508-46cc-a428-1787595d63e4
Basic身份验证 必须如下:
Authorization: Basic base64EncodedUsernameAndPassword

其中 base64EncodedUsernameAndPassword等于以下内容的输出:
base_64_encode(username + ':' + raw_password)

如果尾随文本值不是上述精确算法,则不要使用 Basic

如果您只想在方案名称后放置所需的任何值,请使用 Bearer方案-这就是它的用途。

警告

尽管您可以使用简单的GUID / UUID作为 token ,但这并不是真正的安全 token 。考虑改用 JWT。可以对JWT进行数字签名并为其分配TTL,以便只有设置它的服务器才能a)创建它并验证其真实性,并且b)确保其使用时间不超过允许的时间。尽管对于基于GUID存储的数据可能确实如此,但是JWT方法不需要服务器状态-因此它的伸缩性要好得多-并且可以完成相同的事情。

关于rest - 使用REST api的Guid token 而不是用户名/密码进行基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12086041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com