我正在尝试集成SAML登录和Laravel会话。在成功登录SAML之后,用户被重定向到laravel应用程序,在那里会触发一个SamlLogin事件,并传递用户信息。我有一个用于登录的事件侦听器,我试图将来自SAML的用户与来自本地数据库的用户进行匹配,然后使用Auth::SamlLogin ()手动对其进行身份验证。在手动身份验证之后,用户被重定向到事件侦听器中的Home控制器,用户已成功通过身份验证
但是,当我尝试使用Auth:: user ()在Homecontroller中获取用户时,会话中没有可用的用户。
我遗漏了什么?在监听程序或控制器中,我应该显式地使用web guard还是以任何方式引用会话?
下面是事件处理程序
public function handle(SamlLogin $event)
{
/* @var \SimplerSaml\User */
$samlUser = $event->user;
$user = User::firstOrCreate([
'email' => $samlUser['email']
], [
'name' => $samlUser['name'],
]);
Auth::login($user, true);
redirect()->route('home');
}这是控制器方法
public function index()
{
$userName = Auth::user()->name;
return view('home');
}我遇到错误的地方:试图获取非对象的属性'name‘
发布于 2020-10-20 16:00:40
尝试在处理函数中使用Auth::loginUseingId($user->id)
https://stackoverflow.com/questions/64434258
复制相似问题