【问题标题】:Laravel Socialite: InvalidStateException in AbstractProvider.php line 199:Laravel Socialite:AbstractProvider.php 第 199 行中的 InvalidStateException:
【发布时间】:2017-05-01 00:19:58
【问题描述】:

由于某种原因,当我尝试使用 Facebook 或 Google 使用 Laravel Socialite 登录时出现此异常:

AbstractProvider.php 第 199 行中的 InvalidStateException:

当我的 SocialiteController 尝试从 facebook 驱动程序获取用户时,会引发异常。

public function callback(SocialAccountService $service, $provider)
    {
        try {
            var_dump(Socialite::driver('facebook')->user());

这是 AbstractProvider.php 中似乎引发实际异常的部分:

public function user()
{
  if ($this->hasInvalidState()) {
     throw new InvalidStateException;
}

我一直在关注本教程https://blog.damirmiladinov.com/laravel/laravel-5.2-socialite-twitter-login.html#.WFK0BfnhCUk。由于某种原因,登录在上周之前一直运行良好。

我读过其他文章说我应该更改 config/session.php 所以域不为空,而是我当前的域(在我的情况下为 localhost:8000,因为我使用 XAMPP 在本地运行),并刷新 Laravel 缓存等。但它没有工作。

【问题讨论】:

标签: facebook laravel authentication


【解决方案1】:

我发现我的 Laravel 应用程序 cookie 丢失了,这导致了 InvalidStateException 异常。

我还注意到在每次 HTTP 请求后都没有重新创建 cookie。当我将 Config/Session.php 中的域值从我当前的(“localhost”)更改为 null(默认值)时,cookie 被再次重新创建。

【讨论】:

    【解决方案2】:

    试试

    session()->put('state', $request->input('state'));
    $user = Socialite::driver('facebook')->user();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 2018-03-22
      • 2016-01-29
      • 2015-08-20
      • 2015-06-20
      相关资源
      最近更新 更多