php - AdonisJs - 自定义 JWT uid 字段键

标签 php laravel jwt adonis.js

我使用 Laravel 和 Laravel Passport 构建了一个 API。 一切都很好,但我现在想要实现的是使用 AdonisJs 构建一个新的 API - 用于网站的一些较小的东西,但两个框架的身份验证相同 - 我想这可以使用 JWT token 。

Laravel 和 Adonis 都配置为使用相同的私钥/公钥进行加密。 我面临的问题是,在通过 Laravel 登录后,我无法从 token 中读取用户,这是因为 JWT 对象不同。

Adonis 希望 payload 有一个 uid 属性,这在 Laravel passport made token 中不存在。

下面是passport创建的token:

{ aud: '9',
  jti:
   'ab9d81a20ed72e263f3f6bacef91962bfcb41b5523787fa301f56fa4978e5ae9ceb22dccbfb9fcef',
  iat: 1575970326,
  nbf: 1575970326,
  exp: 1607592726,
  sub: '332',
  scopes: [],
}

而且,这是 Adonis 创建的代币

{ uid: 332, iat: 1575971236 }

有什么方法可以从 Laravel 设置 uid,或者从 Adonis 读取不同的字段?

谢谢!

最佳答案

也许你可以做这样的事情:

在创建 token 时在 token 中添加额外的字段

 $customClaims = ['token_for' => `web` or 'mobile'];
 $token = JWTAuth::claims($customClaims)->fromUser($user);

并检查任何中间件或任何你需要的地方

  $payload = JWTAuth::parseToken()->getPayload();
  $tokenFor = $payload->get('token_for');

现在在这里检查 $tokenFor webmobile

并根据您的需要对 webmobile

进行进一步处理

关于php - AdonisJs - 自定义 JWT uid 字段键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59264387/

相关文章:

php - 碳获取当日名称

php - 拉维尔智威汤逊 : generated tokens on the localhost are valid on the server

javascript - 尝试在 Laravel 5.4 框架中使用制表符将值传递给数据表

php - laravel 5.3 新的 Auth::routes()

PHP 为 Blob 存储创建工作 Azure 签名

php - 使用 PDO 查询两个数据库

node.js - 关于智威汤逊的问题

go - 如何使用 jwt-go 库验证 JSON Web Token?

php - 如何使用 get_theme_mod 获取图像的替代文本?

php - 如果可能,如何使用 PHP 从外部网站获取数据(文本)?