私はfacebook(Socialite)でログインするとsuccesメッセージを表示しようとしています。しかし、私のコントローラは何らかの理由でセッションオブジェクトをリダイレクトしていません。私のFacebookのログインが正しく機能しています。私はLaravelがを保護していると思っています$ redirectPath = '/';これのために。このパスでセッションを送信するにはどうすればよいですか?laravelでFacebookでログインするとsuccesメッセージを表示するには?
AuthController:私の見解では
protected $redirectPath = '/';
public function redirectToProvider()
{
return Socialite::driver('facebook')->redirect();
}
public function handleProviderCallback()
{
try {
$user = Socialite::driver('facebook')->user();
} catch (Exception $e) {
return redirect('auth/facebook');
}
$authUser = $this->findOrCreateUser($user);
Auth::login($authUser, true);
// I think this line is not executing annymore bevause of the Auth::login redirect
return redirect()->back()->with('successfullFacebookLogin', Auth::user()->name);
}
:
@if(session()->has('successfullFacebookLogin'))
<!-- Open login modal when successfully logged in with facebook -->
@include('snippets.facebook-login-modal')
@endif
@if(session()->has('successfullFacebookLogin'))
<!-- Open successfull login modal-->
<script>
$(document).ready(function() {
$('#successfullFacebookLoginModal').modal('show');
});
</script>
@endif
私のroutes.phpファイル(無関係なコードなし):
Route::group(['middleware' => ['web']], function() {
// Logged in
Route::group(['middleware' => 'auth'], function() {
// Delete a user
Route::get('/admin/user/delete/{id}', '[email protected]');
});
// Facebook login
Route::get('auth/facebook', array('as' => 'facebookLogin', 'uses' => "Auth\[email protected]"));
Route::get('auth/facebook/callback', 'Auth\[email protected]');
// Get Register page
Route::get('/register', array('as' => 'getRegister', 'uses' => 'Auth\[email protected]'));
// Register
Route::post('/register', array('as' => 'register', 'uses' => 'Auth\[email protected]'));
// Login
Route::get('/login', array('as' => 'getLogin', 'uses' => 'Auth\[email protected]'));
// Login
Route::post('/login', array('as' => 'login', 'uses' => 'Auth\[email protected]'));
// Login (with modal)
Route::post('/login/modal', array('as' => 'loginModal', 'uses' => 'Auth\[email protected]'));
// Logout
Route::get('auth/logout', array('as' => 'getLogout','uses' => 'Auth\[email protected]'));
});
私はこれを達成しようとした方法
セッションを使用するように、ルートのWebミドルウェアを使用することができます。 –
これはどのように行われているのでしょうか? –
Route :: group(['middleware' => ['web']]、function(){ Route :: resource( 'abc'、 'xyz'); }); –