gpt4 book ai didi

Laravel 护照 - guest token

转载 作者:行者123 更新时间:2023-12-05 05:21:37 25 4
gpt4 key购买 nike

假设有一个应用程序有 10 个动态页面(可能是表单),其中 8 个页面是受限的(需要用户登录应用程序),另外 2 个页面可供匿名用户使用。

我的前端应用程序是在 Angular 2 中开发的,后端 API 是在 Laravel 5.4 中开发的。我对 JWT token 更着迷,发现 Laravel 通过护照提供内置支持。

问题:

  1. 我可以轻松使用 password grant tokens对于那 8 个受限制的页面。但是我如何将 guest token 提供给我的 Angular 应用程序以访问这两个页面
  2. 如何限制 guest 用户访问 8 个受限页面的 API 功能。 (或者如何在 API 端检查访问的用户是访客还是登录用户)

Note: I cannot use Personal Access Tokens as it will allow my app to use any restricted API feature.

最佳答案

我用过 JWT接近这里。在我的例子中,我从我的 API 创建了 JWT token 。想使用JWT特性的可以看看this package .我添加了名为“Guest”的新有效负载并为其分配了 bool 值。在我的数据库中,我添加了新用户(称为匿名用户)并将其 ID 存储在我的 laravel 配置中。

接下来,我创建了新的中间件 VerifyJwtToken,它验证用户、提取它的有效负载(使用 base64_decode)并确定它是否是访客。现在我所有的 Laravel 路由都在这个中间件中。

接下来,我将这个 token 存储在 laravel session 中以及 localStorage (用于通过角度访问它)。

现在,我可以轻松地从 localStorage 访问这个 token 。在 Angular 端我使用了 Angular2Jwt帮助提取 token 并识别它是访客还是登录用户的包。我还创建了 HTTP Interceptor在 Angular 4 中,它在每个 API 请求中添加 JWT token 作为 header 。

关于Laravel 护照 - guest token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487333/

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