大佬教程收集整理的这篇文章主要介绍了Laravel Passport 签发后获取用户访问令牌,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Laravel Passport 在用户登录后向其颁发 Bearers,然后能够连接到 API(是的,我知道 Sanctum 可能更适合我的需求,但我正在使用 Passport,所以甚至不要提及切换到 Sanctum),然后在前端,我将用户电子邮件和 Bearer 存储在 cookie 中,以便稍后将它们用于其他查询,并将不记名添加到 Axios Auth 标头,尽管现在我的逻辑有问题,可能与我不知道如何在 Nuxt 中正确使用 Passport 的事实有关。
我对在帖子请求中向用户发送电子邮件的每个页面进行查询,他们返回全局信息和用户信息的混合。
是的,我的端点已经在身份验证中间件后面,但我只是发送一个承载令牌以允许使用任何数据查询端点,无法阻止从用户 A 请求用户 B 信息。
如何使用阻止用户发送不同的电子邮件并获取其他用户的信息?
这是我发布访问令牌的方式:
$token = $user->createtoken('Laravel password Grant ClIEnt')->accesstoken;
有没有办法做这样的事情?
$user = User::where('email',$request->email)->first();
// E.g. user@mail.com ...
// Get the user Access Token
$userToken = $user->getAccesstoken;
// E.g. someBerareText
// check if the User Access Token match with the one send in the request
// if they don't match throw a 401
if ($userToken !== $request->header('Authorization')) {
return response()->Json([ "error" => "Not Authorized" ],401);
...
// E.g. $request->header('Authorization') it's SomeOtherBearer because he
// requested info for user@mail.com but the $request->header('Authorization')
// belong to otheruser@othermail.com
用户仍然可以发送相同的请求,但使用用户 B 的电子邮件并查看不属于他的其他信息,那么我如何检查 $request
中的电子邮件是否属于实际登录的用户在?
某种方法来解码访问令牌并检查它是否真的属于用户?
如果设置了Laravel Passport
作为守卫,它将从承载令牌中获取用户,其逻辑可以在Passport中的TokenGuard.php类中看到。它实际上与您想要实现的功能相同。
因此,与使用的守卫相比,身份验证的工作方式不同。因此护照要求您更换警卫。这是 Laravel
如何区分身份验证以及 Auth::user()
如何加载的决定性因素。
'guards' => [
...
'api' => [
'driver' => 'passport','provider' => 'users',],
这意味着您可以检查用户是否通过模型函数 is()
进行了正确的身份验证,以比较模型是否相同。
User::where('email',$request->email)->first()->is(Auth::user())
以上是大佬教程为你收集整理的Laravel Passport 签发后获取用户访问令牌全部内容,希望文章能够帮你解决Laravel Passport 签发后获取用户访问令牌所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。