gpt4 book ai didi

javascript - 如何在 RESTful 系统中使用 HTTP GET 请求传递授权数据?

转载 作者:可可西里 更新时间:2023-11-01 15:29:19 26 4
gpt4 key购买 nike

这可能是最基本的问题,出于某种原因,但我有点傻眼了。我正在设计一个具有多个页面的 Restful 服务。默认情况下单击链接会触发 HTTP GET

现在如何使用 get 请求发送授权数据?它应该是网址的一部分吗?我将被迫创建一个带有加密查询参数的难看的 url。有什么办法可以避免这种情况吗?

可以这么说,javascript/jquery 中有什么东西可以“在幕后”发送这些数据吗?

在 JQuery 中,$.ajax 方法将 username, password 作为参数,以便授权数据可以与 ajax 调用一起发送。非 ajax 调用的任何等效项,还是我只剩下 URL?

采用这种方法的原因:

  • 我希望用户能够点击“后退按钮”并返回到上一页。如果我使用授权执行 $.get,然后使用 $('html').replaceWith(result) 执行它,它将禁用后退按钮,对吗? (即不显示任何内容)

这可能应该是 REST 101,但出于某种原因,它让我走投无路

(仅供引用:技术:Jquery/javascript/ReSTLet/Freemarker)

(PS:Cookie 是不得已的手段。还是最好的方法?:)

最佳答案

对于 GET 请求,您只能使用请求 header 和请求的查询字符串/URL。您可以使用 HMAC方法或OAUTH ,其中每个请求都是“签名”的。如果您纯粹是在客户端执行此操作,则存在共享 secret 不再是 secret 的问题。

当然,听起来您已经在使用用户名和密码发出 POST 请求(顺便说一句,我非常不鼓励这样做)

如果您想要 HMAC 的实际示例,我相信 Amazon 确实(或曾经)使用 HMAC 与 S3 进行交互,因此周围有很多示例代码。

最终,很难让 Web 客户端在不泄露一些“ secret ”信息(例如密码或私钥/ token )的情况下进行无状态身份验证。您可以向用户颁发临时 token ,然后通过验证请求 header (IP 地址等)在 token 的整个生命周期内保持一致来进行备份。如果您要向客户端公开临时 token ,您可能希望您的身份验证机制包含一个唯一的 nonce。也根据请求。

如果您希望 Web 客户端执行请求,那么纯无状态 RESTful 身份验证非常重要,因此我不会将其称为 REST 101 :)

关于javascript - 如何在 RESTful 系统中使用 HTTP GET 请求传递授权数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7084330/

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