2016-02-19 65 views
0

我想实现一个不错的JWT基于API,所以我已经阅读文档的负荷,他们大约JWTs和如何工作的,但我不能找出几件事情:在laravel使用JWT 5.1 API

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

  2. 是否需要通过JWT才能通过所有内容?例如,从数据库获取页面特定数据或获取所有博客文章或类似的内容。

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

  4. 我使用的是在这种情况下Tymon/JWT-Auth库,这里是我的应用程序是如何工作的那一刻有点示范:

    1. 用户发送post请求api/authenticate路线,它记录了用户和返回一个JWT标记作为json以及用户详细信息 - name,emailpermissions。所以从服务器返回的数据是这样的:

    { "token": "blablabla", "user": { "email": "[email protected]", "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键中的任何值更新。

这是做这件事的正确方法吗?

回答

-1

你必须用这种模式您的令牌追加到所谓授权一个特殊的HTTP标头,例如:

headers('Authorization: JWT aer5a4era456f4asrgt1aer46a');