laravel 5.3의 기본값 인 laravel auth를 사용했습니다. 내가 궁금한 것은 성공적인 로그인시 세션에 추가 정보를 어떻게 추가 할 수 있습니까? 내가 정보를 가져올 수 그래서 내가 당신이 사용자 객체을 통해 접속의 직접 대신 세션 외관을 사용하는 것이 좋습니다laravel 5.3의 인증 세션에 추가 정보 추가
$user = Auth::user()->someField
laravel 5.3의 기본값 인 laravel auth를 사용했습니다. 내가 궁금한 것은 성공적인 로그인시 세션에 추가 정보를 어떻게 추가 할 수 있습니까? 내가 정보를 가져올 수 그래서 내가 당신이 사용자 객체을 통해 접속의 직접 대신 세션 외관을 사용하는 것이 좋습니다laravel 5.3의 인증 세션에 추가 정보 추가
$user = Auth::user()->someField
으로 필요합니다.
필요한 것을 얻으려면 Laravel의 이벤트 시스템에 연결해야합니다. 이 때 사용자 트리거 것 있도록
<?php namespace App\Listeners;
use Illuminate\Auth\Events\Login;
use Session;
class AddDataToUserSession
{
public function handle(Login $loginEvent)
{
Session::put('key', 'some value you want to store in session for that user');
// you can access the User object with $loginEvent->user
Session::put('user_email', $loginEvent->user->email);
}
}
그런 다음이 리스너를 등록해야합니다 모든
먼저, 사용자가 인증 할 때 트리거됩니다 세션에 필요한 모든 데이터를 저장합니다 리스너를 정의해야 로그인하십시오. EventServiceProvider 클래스에서이 작업을 수행 할 수 있습니다. 로그인 이벤트에서 트리거 된 리스너 목록에 리스너를 추가해야합니다.
protected $listen = [
'Illuminate\Auth\Events\Login' => [
'App\Listeners\AddDataToUserSession',
],
];
나는 그 일을했지만 아무 것도 세션에 저장되지 않고있다. 세션도 존재하지 않습니다. 나는 심지어 공급자 정보를 추가했다. –
Auth :: user()가 반환 한 User 객체를 통해 원하는 이유가 있습니까? Session facade를 직접 사용하지 않는 이유는 무엇입니까? –
일단 사용자가 기록하면 어떻게합니까? 나는 그것을 어디에 두 겠는가? –