php – Laravel Passport“auth:api”中间件充当“web,auth”中
我已经按照官方文档(
https://laravel.com/docs/5.3/passport#introduction)中的描述为Laravel 5.3设置了Laravel Passport包.
我希望API由移动应用程序使用,因此我尝试实现密码授予令牌.我创建了一个密码授予客户端,以及令牌请求进程…… $response = $http->post('http://my-app.com/oauth/token',[ 'form_params' => [ 'grant_type' => 'password','client_id' => 'client-id','client_secret' => 'client-secret','username' => 'my@email.com','password' => 'my-password','scope' => '',],]); …按预期工作,为我的一个用户返回访问令牌和刷新令牌. 一方面, php artisan route:list 列出api / user URI的正确中间件:api,auth:api api guard的驱动程序在config / auth.php中正确设置为passport. 默认api.php的内容: Route::get('/user',function (Request $request) { return $request->user(); })->middleware('auth:api'); 当我访问http://my-app.com/api/user时出现问题,因为它似乎是使用’web’中间件验证请求,而不是’api’… 任何帮助将非常感激. 解决方法
解决了!仅供记录,解决方案:
我发送请求到http://my-app.com/api/user与HTTP标头错误.我发送: Type: Authorization - Content: Bearer: $accessToken ……正确的方法是: Type: Authorization - Content: Bearer $accessToken (without colon) 我从没想过这可能是一个错字……无论如何,错误并不容易被发现,因为重定向到登录表单从一开始就误导了我.我相信这确实是一种奇怪的行为…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |