我正在使用 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/