Php 无法将身份验证数据发送到laravel中的其他域
我只需一次登录就可以完成两个项目,因此如果我已经登录了www.domain1.com,我也会自动使用相同的身份验证数据登录www.domain2.com。但是现在,当我已经登录www.domain1.com时,身份验证数据没有发送到www.domain2.com。我正在使用会话共享身份验证数据,但仍然不起作用。这就是我到目前为止所做的。项目仍在localhost中 www.domain1.com登录控制器Php 无法将身份验证数据发送到laravel中的其他域,php,laravel,session,Php,Laravel,Session,我只需一次登录就可以完成两个项目,因此如果我已经登录了www.domain1.com,我也会自动使用相同的身份验证数据登录www.domain2.com。但是现在,当我已经登录www.domain1.com时,身份验证数据没有发送到www.domain2.com。我正在使用会话共享身份验证数据,但仍然不起作用。这就是我到目前为止所做的。项目仍在localhost中 www.domain1.com登录控制器 public function dologin(Request $r) { $
public function dologin(Request $r)
{
$credentials = array(
'username' => $r->username,
'password' => $r->password
);
if (\Auth::attempt($credentials)) {
return view('setcookie');
}
else {
return redirect()->to('/')->withErrors('Username or Password Incorrect !');
}
}
setcookie.blade.php
<body>
<img src="http://localhost:8000/app_task/public/setcookie?id={{ Session::getId() }}" style="display:none;" />
</body>
我可以在域2的日志中获取会话id,但是当我尝试在域2中获取\Auth::user->id时,我得到了非对象错误的trying-to-get属性,这意味着在domain1中登录的用户id没有共享到domain2和其他身份验证数据,如用户名等。请帮助我解释为什么会出现此问题,并为我提供解决方案。谢谢我可以通过使用数据库会话驱动程序而不是文件会话驱动程序来解决此问题,我在两个域中使用相同的会话表,因此如果我在域2中设置域1的会话id,它可以获得相同的已验证用户id。对于创建会话表,我使用laravel官方网站
指南。域1和域2是否共享同一数据库用于验证用户身份?是的,我可以通过使用数据库会话驱动程序而不是文件驱动程序来解决此问题,我为两个域使用相同的会话表,因此如果我在域2内设置域1的会话id,它可以获得相同的已验证用户id。。谢谢你的回复@很好,你应该把你的解决方案作为你自己问题的答案,这样下一个人就知道如何解决这个问题了@Janotamaalr已经发布了我的答案。。谢谢@阿泽姆
Route::get('setcookie', function(){
Session::setId($_GET['id']);
Session::start();
return 'Cookie created';
});