我想实现一个不错的JWT
基于API,所以我已经阅读文档的负荷,他们大约JWTs
和如何工作的,但我不能找出几件事情:在laravel使用JWT 5.1 API
当用户登录到应用程序时,我是否通过
JWT
传递用户详细信息?例如,name,
电子邮件和用户permissions
。是否需要通过
JWT
才能通过所有内容?例如,从数据库获取页面特定数据或获取所有博客文章或类似的内容。如何在后端找出用户是否有权执行此操作?我如何从令牌获取用户详细信息?
我使用的是在这种情况下
Tymon/JWT-Auth
库,这里是我的应用程序是如何工作的那一刻有点示范:- 用户发送
post
请求api/authenticate
路线,它记录了用户和返回一个JWT
标记作为json
以及用户详细信息 -name
,email
和permissions
。所以从服务器返回的数据是这样的:
{ "token": "blablabla", "user": { "email": "[email protected]", "name": "Test User", "permissions": [ "can_edit_posts", "can_delete_users" ] } }
JWT
存储在一个全局变量在JavaScript中称为token
。用户数据存储在用户对象中。- 用户转到比方说
blogs
页面。此页面向服务器发送GET
请求,该请求检索所有帖子:/blogs?token=[THAT_GLOBAL_VARIABLE_HERE]
- 服务器返回所有帖子的列表。
- 全局令牌变量使用标头中的
Bearer
键中的任何值更新。
- 用户发送
这是做这件事的正确方法吗?