Ale*_*pov 3 php api laravel laravel-routing
使用后端(laravel)和前端 SPA(vue.js、vue-cli 3)进行服务。我需要通过 httpOnly cookie (不是 localStorage)进行身份验证。我使用tymondesigns/jwt-auth作为 api auth 包。
\n\n我的环境是:
\n\nhttp://brideplanner.test/apihttp://app-test.brideplanner.test:81/我的登录路径是/api/auth/login,控制器方法是:
public function login()\n {\n $credentials = request([\'email\', \'password\']);\n $user = User::where(\'email\',\'=\',$credentials[\'email\'])->first();\n if (!$user || !$token = auth()->claims([\'sub\' => $user->id, \'csrf-token\' => str_random(32) ])->attempt($credentials)) {\n return response()->json([\'error\' => \'Unauthorized\'], 401);\n }\n return response()\n ->json(\'success\')\n ->withCookie(\'token\', $token, config(\'jwt.ttl\'), ".brideplanner.test", null, false, false);\n }\nRun Code Online (Sandbox Code Playgroud)\n\ntoken但是当我尝试向 API 发送请求时, cookie 存储中没有任何项目。这里出了什么问题?为什么没有令牌?我应该怎么办?
UPD:我通过邮递员测试了请求,并得到了令牌:
\n\nSet-Cookie \xe2\x86\x92token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9icmlkZXBsYW5uZXIudGVzdFwvYXBpXC9hdXRoXC9sb2dpbiIsImlhdCI6MTU1MTM5NDMwNCwiZXhwIjoxNTUxMzk1MjA0LCJuYmYiOjE1NTEzOTQzMDQsImp0aSI6Im9uU1NtWEpSU0prR3NKc3giLCJzdWIiOjEsInBydiI6Ijg3ZTBhZjFlZjlmZDE1ODEyZmRlYzk3MTUzYTE0ZTBiMDQ3NTQ2YWEiLCIwIjoic3ViIiwiMSI6ImNzcmYtdG9rZW4iLCJjc3JmLXRva2VuIjoiTE9jSDFCWG9ITFJBMjlFYTg2MG1XQXhrVnpTR2gzT2oifQ.mnR4C6bwMIVptU64eZ6tN-gCYyFEuCIk_dm6dJsXrLY; expires=Thu, 28-Feb-2019 23:06:44 GMT; Max-Age=900; path=.brideplanner.test; domain=.brideplanner.test; httponly\nRun Code Online (Sandbox Code Playgroud)\n\n但是当我从我的 SPA ( ) 发送请求时http://app-test.brideplanner.test:81/,它出错了。
在默认的 Laravel 安装中,api路由没有Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse启用处理 cookie 的中间件 ( )。
如果您确实需要基于 cookie 的身份验证,您可以在 API 路由上启用此中间件,但请务必阅读差异 。
| 归档时间: |
|
| 查看次数: |
8244 次 |
| 最近记录: |