【问题标题】:Using JWT in laravel 5.1 api在 laravel 5.1 api 中使用 JWT
【发布时间】:2023-03-30 00:28:01
【问题描述】:

我正在尝试实现一个不错的基于 JWT 的 API,因此我已经阅读了大量有关 JWTs 及其工作原理的文档,但我无法弄清楚一些事情:

  1. 当用户登录应用程序时,我是否通过JWT传递用户详细信息?例如,name,email 和用户 permissions

  2. 我需要通过JWT 传递所有内容吗?例如,从数据库中获取页面特定数据或获取所有博客文章或类似的东西。

  3. 如何在后端查明用户是否有权执行此操作?如何从令牌中获取用户详细信息?

  4. 在这种情况下,我使用的是Tymon/JWT-Auth 库,下面是我的应用程序目前如何工作的一个小演示:

    1. 用户向api/authenticate 路由发送post 请求,该路由将用户登录并返回JWT 令牌作为json 以及用户详细信息-nameemailpermissions。所以服务器返回的数据是这样的:

    { "token": "blablabla", "user": { "email": "testin@test.com", "name": "Test User", "permissions": [ "can_edit_posts", "can_delete_users" ] } }

    JWT 存储在 javascript 中名为 token 的全局变量中。用户数据存储在用户对象中。

    1. 用户转到假设是blogs 页面。此页面向服务器发送GET 请求,该请求检索所有帖子:/blogs?token=[THAT_GLOBAL_VARIABLE_HERE]
    2. 服务器返回所有帖子的列表。
    3. 全局令牌变量将使用标题中Bearer 键中的任何内容进行更新。

这是正确的做法吗?

【问题讨论】:

    标签: php facebook jwt


    【解决方案1】:

    您必须将令牌附加到名为 Authorization 的特殊 http 标头中,例如使用以下模式:

    headers('Authorization: JWT aer5a4era456f4asrgt1aer46a');
    

    【讨论】:

      猜你喜欢
      • 2018-06-17
      • 2017-05-11
      • 2016-03-18
      • 2018-08-12
      • 1970-01-01
      • 2016-03-21
      • 2016-01-09
      • 1970-01-01
      相关资源
      最近更新 更多