laravel - 动态回调 url laravel

标签 laravel

我试图使我的回调 url 动态化,因为我在多身份验证系统中配置社交名流。我尝试使用 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();

但它说:

Call to undefined method Laravel\Socialite\Two\FacebookProvider::setConfig()



尝试使用 facebook 登录时。

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

最佳答案

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

默认情况下,Socialite 将在 services.php 中获取提供者配置。通过传递 $providerName = 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]);

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

关于laravel - 动态回调 url laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38642439/

相关文章:

mysql - 无需 Foreach 循环的批量更新查询 Eloquent - Laravel 5.1

php - 在 Laravel 5 中显示本地磁盘中的 pdf 文件?

laravel - 如何在 Laravel 中手动重新发送电子邮件验证?

php - 生产服务器上需要哪些 Laravel Elixir 文件?

php - 使用 Laravel 和 AngularJS 从数据库获取用户特定信息

php - AWS CodeBuild 错误,运行时版本 PHP 8.0 不受支持

php - Laravel 项目中解析错误 : syntax error, 意外 'const' (T_CONST),期望变量 (T_VARIABLE)

php - Laravel 5 有条件的多对多同步()

拉维尔 5.8 : Validation multiple inputs

javascript - 如何在加载时在页面的下拉列表中选择事件项目