动态回调网址laravel

时间:2016-07-28 16:54:05

标签: laravel

我试图让我的回调网址动态,因为我在多个身份验证系统中配置了社交网站。我尝试使用socialiteproviders/manager,如下所示:

    $clientId = env($provider."_client_id");
    $clientSecret = env($provider."_client_secret");
    $redirectUrl = "the url i want";
    $config = new \SocialiteProviders\Manager\Config($clientId,$clientSecret,$redirectUrl);
    return Socialite::with($provider)->setConfig($config)->redirect();

但它说:

  

调用未定义的方法Laravel \ Socialite \ Two \ FacebookProvider :: setConfig()

尝试使用Facebook登录时。

有人可以帮帮我吗?谢谢。

1 个答案:

答案 0 :(得分:0)

我可以复制并找到解决方案。您提供的代码已经过时,我在这里找到了它的其他实例:https://laravel.io/forum/07-28-2016-dynamic-callback-url-laravel-socialite

默认情况下,Socialite将通过传递$ providerName = services.php来获取facebook中的提供程序配置

所以您的代码现在变为:

// The services.php config will return null, fix it by using: strtoupper()

$clientId = env(strtoupper($provider . "_client_id"));
$clientSecret = env(strtoupper($provider . "_client_secret"));
$redirectUrl = "/the-url-i-want";

// ->redirect() acts as a closure, without it, you'll get an error like:
// "Serialization of 'Closure' is not allowed"

$user = Socialite::with($provider)->redirect();
return redirect()->to($redirectUrl)->with(['user', $user]);

有关使用会话数据重定向的更多信息: https://laravel.com/docs/6.x/redirects#redirecting-with-flashed-session-data