gpt4 book ai didi

javascript - 如何在 JS 和 PHP API 之间设置 session token ?

转载 作者:行者123 更新时间:2023-12-02 14:17:27 28 4
gpt4 key购买 nike

我设计了一个简单的 HTML/CSS 和 JS/jQuery 应用程序,现在是身份验证集成的时刻。在服务器端,我做了一个 REST API,它允许客户端获取一些数据。但是,现在我想使用访问和/或 session token 对每个请求进行身份验证。

我阅读了很多网站来寻找在客户端 (JS) 和 REST API (PHP) 之间建立安全性的协议(protocol)或建议,但不幸的是我没有找到任何内容或没有兴趣。所以我请你启发我(如果你愿意)知道该做什么、要实现什么、约定等等。

我读到的内容:

Designing a Secure REST (Web) API without OAuth

Token Based Authentication for Single Page Apps (SPAs)

根据我的声誉,我无法发布更多链接...

请给我建议,以及如何存储 API 的私有(private) token (RSA) 或访问/ session token 的方法。

请毫不犹豫地给出您的 react ,如果我说得不准确或其他什么,请告诉我。

最佳答案

您需要对 REST API 使用基于 token 的身份验证。在这种特殊情况下,JWT 是最好的。

为什么使用 JSON Web token ?

  1. token 是无状态的。 token 是独立的,包含身份验证所需的所有信息。这对于可扩展性非常有用,因为它使您的服务器不必存储 session 状态。

  2. JWT 可以从任何地方生成。 token 生成与 token 验证分离,使您可以选择在单独的服务器上甚至通过不同的公司(例如 Auth0)处理 token 签名.

  3. JWT 具有细粒度的访问控制。在 token 负载中,您可以轻松指定用户 Angular 色和权限以及用户可以访问的资源。

这将是典型的身份验证流程:

  1. 用户注册/登录,在登录过程中,您从服务器生成 JSON Web token 并将其返回给客户端。由于您使用的是 PHP,因此可以使用此 library用于 token 的生成和签名。
  2. 将返回给客户端的 JWT 存储在浏览器 Web 存储(本地/ session 存储)中。它也可以存储在 cookie 中。
  3. 对于从客户端到服务器的后续 HTTP 请求,您可以通过 headers/query 发送 token ,然后服务器验证该 token 。如果有效,则用户通过身份验证,否则用户被拒绝。

Typical authentication flow

顺便说一句,如果您不想自己实现身份验证,可以使用Auth0,查看VanillaJS SPA和 PHP quickstart

我希望这些信息有帮助。干杯!

关于javascript - 如何在 JS 和 PHP API 之间设置 session token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913340/

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