使用 JWT 获取令牌而不尝试用户凭据 Laravel?
Posted
技术标签:
【中文标题】使用 JWT 获取令牌而不尝试用户凭据 Laravel?【英文标题】:Get token with JWT without attempting user credentials Laravel? 【发布时间】:2016-07-27 16:41:28 【问题描述】:我目前正在开发一个 Angular(前端)- Laravel (API) 应用程序。我需要知道我是否可以进行混合登录。
目前我正在使用存储过程进行登录。但是如果登录成功,我想将 JWT 令牌发送到客户端。如果不调用 JWT 尝试方法,这可能吗? JWT 有类似 JWT::getToken($mail); 方法吗?如果我不能这样做,还有其他解决方法吗?
$mail = $request['email'];
$password = $request['password'];
$query = new Query("CALL SP_USER_LOG_IN(?,?, @outputMessage)");
$query->addParameter(1, $mail);
$query->addParameter(2, $password);
$outputMessage = DB::executeQuery($query);
if($outputMessage === null)
//It means the login was successful
$token = JWT::getToken($mail);
return ["error" => NULL, "token" => $token];
else
return ["error" => $outputMessage];
注意
我刚刚发现了 JWT,它看起来是一个非常好的解决方案,因为我正在前端使用一个轻量级的应用程序。但是由于我必须使用存储过程,所以我不知道如何进行。
【问题讨论】:
您是否使用包来生成 JWT? 是的,我是。目前在 Laravel 中使用 JWT 你能说得更具体一点吗?也许是包名或链接? 【参考方案1】:验证用户后,从数据库中获取他们,然后创建令牌 fromUser($user)
。
if($outputMessage === null)
//It means the login was successful
$user = User::where('email', $mail)->first();
$token = JWT::fromUser($user);
return ["error" => NULL, "token" => $token];
【讨论】:
你救了我的命!谢谢!这就像一个魅力!以上是关于使用 JWT 获取令牌而不尝试用户凭据 Laravel?的主要内容,如果未能解决你的问题,请参考以下文章
实现 JWT 身份验证 Azure Function 3.x - 使用 JWT 令牌获取当前用户的声明
如何在使用客户端凭据授予流程时在 JWT 令牌中附加或包含用户身份(用户名或电子邮件地址)
Spring Security JWT - 400 错误请求:“无效授权”“错误凭据”
使用 MongoDB 获取存储的用户凭据的 JAVA Spring 自定义身份验证