php - 使用 slim-jwt-auth 生成 token

标签 php jwt slim-3

我正在使用 slim-jwt-auth为 JSON API 创建基于 token 的身份验证。

文档非常有用,但我不明白的一件事是 token 是如何生成的?文档说中间件能够解码 token ,但看不到任何编码方式。

我见过的一些项目使用 firebase/jwt ,但我不确定这是否需要,或者是否与 slim-jwt-auth 兼容。

slim-jwt-auth 是否能够生成 token ?

最佳答案

您可以但不需要安装额外的库来生成 token 。中间件使用 firebase/php-jwt在内部,因此您可以使用相同的库来生成 token 。类似于以下内容。

use \Firebase\JWT\JWT;
use \Tuupola\Base62;

$now = new DateTime();
$future = new DateTime("now +2 hours");
$jti = Base62::encode(random_bytes(16));

$secret = "your_secret_key";

$payload = [
    "jti" => $jti,
    "iat" => $now->getTimeStamp(),
    "nbf" => $future->getTimeStamp()
];

$token = JWT::encode($payload, $secret, "HS256");

您还可以检查 Slim API Skeleton寻找灵感。

关于php - 使用 slim-jwt-auth 生成 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40745307/

相关文章:

java - 如何获得Google服务帐户的有效凭据?

php - Slim Framework 子路由

php 未连接

javascript - PHP:看似简单的 IF 语句,但似乎不起作用

jwt - 来自 Google 的 ID token 中的 email_verified = false

php - 我无法将 Sentry 添加到php slim

php - 依赖注入(inject) Slim Framework 3

java - 用 Java 压缩 用 PHP 解压

php - 依赖MySQL Cascade删除安全吗

jwt - Spring Security 无状态 JWT 身份验证 - 如何获取其他 jwt 字段?