我正在开发一个使用laravel作为后端的应用程序,登录表单通过ajax工作,并且前端在本地加载,因此它是一个跨域,问题是laravel没有在客户端设置cookie所以用户没有保持登录状态。
我正在考虑手动获取cookie并将其注入应用程序的全局ajax标头但我无法找到laravel如何将会话ID转换为设置为cookie的巨型字符串,我该如何获取它或者我如何将会话ID转换为值?
答案 0 :(得分:0)
您应该查看domain
文件中的session.php
变量:
/*
|--------------------------------------------------------------------------
| Session Cookie Domain
|--------------------------------------------------------------------------
|
| Here you may change the domain of the cookie used to identify a session
| in your application. This will determine which domains the cookie is
| available to in your application. A sensible default has been set.
|
*/
'domain' => null,
您可以在此处将domain
设置为您的本地域。
答案 1 :(得分:0)
我最终制定了一个解决方法,生成了一个随机哈希标记,并将其作为密钥存储在redis上,并将用户的id作为值,将其发回并将其存储在前端的本地存储中,然后将其设置为全局ajax标头,服务器端只调用
Auth::loginUsingid($id)
来自客户端在每次请求时发送的令牌值,它很乱,但它可以解决跨域问题