Фиксированный маршрут Домой после входа в Google через Socialite - PullRequest
0 голосов
/ 20 января 2019

Я установил логин google с socialite 3.2.0 на laravel 5.6.Аутентификация работает отлично. Я хочу пользовательское перенаправление, я старался изо всех сил, пробуя методы, но он перенаправляет на Home после регистрации.

//login controller
    protected $redirectTo = '/home';
    protected $redirectToEdit = '/edit';

    public function redirectToProvider($provider)
    {
        return Socialite::driver($provider)->redirect();
    }


    public function handleProviderCallback($provider )
    {
        $user = Socialite::driver($provider)->stateless()->user();
        $authUser = $this->findOrCreateUser($user, $provider);
        Auth::login($authUser,true);        
        return redirect($this->redirectToEdit);


    }

    public function findOrCreateUser($user, $provider)
    {
        $authUser = User::where('provider_id', $user->id)->first();
        if($authUser) {
            return $authUser;
        }
        $user =  User::create([
            'name'      =>  $user->name,
            'email'     =>  $user->email,
            'provider'  =>  strtoupper($provider),
            'provider_id'   =>  $user->id
        ]);


        return $user;
    }

routes
Route::get('auth/{provider}', 'Auth\LoginController@redirectToProvider');
Route::get('auth/{provider}/callback', 'Auth\LoginController@handleProviderCallback');

Я хочу направить пользователей, использующих Google, в качестве логина, чтобы направлять их / редактировать после регистрации. Как мне подойти?

1 Ответ

0 голосов
/ 20 января 2019

Смена контроллера сработала. Я настроил функцию перенаправления пользователя в LoginController, и он перенаправил на / home вместо доступа к функции. Сменил на HomeController и настроил маршруты, и это сработало.

У меня сейчас такой подход

return redirect()->route('edit'); // handleProviderCallback function in Login Controller

//routes
Route::get('test', 'HomeController@showForm')->name('edit');

Вы можете вызывать функцию напрямую, начиная с Документация по перенаправлению Laravel

return redirect()->action('HomeController@showForm');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...