繁体   English   中英

Laravel社交名媛继续将我引导回家

[英]Laravel socialite keeps redirecting me on home

我正在尝试使用Laravel社交网站套件为我的Laravel 5 / Angular 2网站设置Linkedin&Google登录。

社交网站提供程序和别名已正确插入config/app.php文件中

这是我在config/services.php文件中插入的代码

'linkedin' => [
    'client_id' => '[hidden-linkedin-client-id]',
    'client_secret' => '[hidden-linkedin-client-secret]',
    'redirect' => 'http://localhost:8888/profile',
],

'google' => [
    'client_id' => '[hidden-google-client-id]',
    'client_secret' => '[hidden-google-client-secret]',
    'redirect' => 'http://localhost:8888/profile',
],

这是我创建的路线......

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

...以及Http/Controllers/Auth/AuthController.php的相关函数

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

public function handleProviderCallback($provider)
{
    $user = Socialite::driver($provider)->user();

    return $user->token;
}

然后,当我导航到http:// localhost:8888 / auth / githubhttp:// localhost:8888 / auth / linkedin时,它会将我重定向到http:// localhost:8888,而不会记录任何日志。 我哪里做错了?

更新社交重定向配置,请检查以下内容: -

'linkedin' => [
    'client_id' => '[hidden-linkedin-client-id]',
    'client_secret' => '[hidden-linkedin-client-secret]',
    'redirect' => 'http://localhost:8888/auth/linkdin/callback',
],

'google' => [
    'client_id' => '[hidden-google-client-id]',
    'client_secret' => '[hidden-google-client-secret]',
    'redirect' => 'http://localhost:8888/auth/google/callback',
],

和重定向功能应该是这样的: -

public function redirectToProvider(){
  try{
    Log::info('redirecting');
    return Socialite::driver(\Request::segment(2))->redirect();
  }catch(\Exception $e){
    Log::info('Exception in redirect');
  }
}

非常感谢您的帮助,但由于未调用redirectToProvider()函数,因此您的答案都没有实际效果。

所以我保留了我的初始代码,并最终通过在中间件Middleware/RedirectIfAuthenticated.php评论这些行来使其工作:

public function handle($request, Closure $next, $guard = null)
    {
        /* 
            if (Auth::guard($guard)->check()) {
                return redirect('/');
            }
        */
        return $next($request);
    }

这显然是一种解决方法,但这是我发现的最佳解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM