我正在尝试学习如何将 JWT 令牌从 ReactJS 传递到我的 PHP API。我目前有两个功能:用于检查用户名和密码的身份验证功能,然后生成并传回令牌。生成部分似乎有效,但是当我将令牌传回授权承载中时,我无法对其进行验证。我正在使用 Lcobucci\JWT 库。
这是我的代码:
public function attempt_login($input){
$time = time();
$token = (new Builder())->issuedBy('https://api.example.com')
->permittedFor('https://example.com')
->identifiedBy('4f1g23a12aa', true)
->issuedAt($time)
->canOnlyBeUsedAfter($time + 60)
->expiresAt($time + 3600)
->withClaim('uid',1)
->getToken();
return $token;
}
public function find($headers){
$auth = $headers['Authorization'];
if (preg_match('/Bearer\s(\S+)/', $auth, $matches)) {
$token = (new Parser())->parse((string) $matches[1]);
$data = new ValidationData();
$data->setIssuer('https://api.example.com');
$data->setAudience('https://example.com');
$data->setId('4f1g23a12aa');
dd($token->validate($data));
}else{
dd('nope');
}
}
当我倾倒和死亡时,我总是会弄错。我 95% 确定我做错了,但谁能帮我解决这个问题?
红糖糍粑