如何解决用用户信息生成jwt
我使用来自Slim / PHP的HttpBasicAuthentication来保护对“ /登录”路由的访问,在验证访问之后,将创建一个JWT以提供对所有路由的访问。因此,我想使用数据库中的用户配置文件信息生成自定义jwt,但无法获取用户信息……所有参数均为空。 该怎么解决?
$app->add(new \Tuupola\Middleware\HttpBasicAuthentication([
"path" => "/login","realm" => "Protected","authenticator" => new LoginAuthenticator(),"error" => function ($response,$arguments) {
$data = [];
$data["status"] = "error";
$data["message"] = $arguments["message"];
$body = $response->getBody();
$body->write(json_encode($data,JSON_UNESCAPED_SLASHES));
return $response->withBody($body);
},"before" => function ($request,$arguments) {
return $request->withAttribute("user",$arguments["user"]);
}
]));
路线
$app->get('/login',function (Request $request,Response $response) use ($app) {
$params = (object) $request->getParams()
$key = $this->get("secretkey");
$token = array(
"user" => $params->user,"email" => $params->email,"age" => $params->age
);
$jwt = JWT::encode($token,$key);
return $response->withJson(["jwt" => $jwt],200)
->withHeader('Content-type','application/json');
});
解决方法
如果您具有$ token,$ key,algorithm,则可以通过向下编码来检索有效负载
JWT::decode($token,$key,array(‘HS256’));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。