Php Laravel 5.3 Auth facade正在更改为默认的已验证用户

Php Laravel 5.3 Auth facade正在更改为默认的已验证用户,php,laravel,authentication,Php,Laravel,Authentication,所以我在我的laravel网站上有一个自定义的登录流。其他用户位于可通过API访问的外部数据存储中。流程基本上是这样的。(缩小) 如果我尝试使用user2@example.com,转储将显示该用户的对象。但是,第二次我被重定向到/,Auth::user()将是user1@example.com 我的本地数据库显示这两个用户记录,但默认为第一个用户。我正在使用默认的注销函数注销和清除会话,并且我已经确认在调用注销函数时,Auth::user()为null。我卡住了 编辑:我尝试了Auth::tru

所以我在我的laravel网站上有一个自定义的登录流。其他用户位于可通过API访问的外部数据存储中。流程基本上是这样的。(缩小)

如果我尝试使用
user2@example.com
,转储将显示该用户的对象。但是,第二次我被重定向到
/
Auth::user()
将是
user1@example.com
我的本地数据库显示这两个用户记录,但默认为第一个用户。我正在使用默认的注销函数注销和清除会话,并且我已经确认在调用注销函数时,
Auth::user()
为null。我卡住了

编辑:我尝试了
Auth::trust(…)
而不是
Auth::login(…)
,它没有改变任何东西

EDIT2:我从零开始使用Laravel5.4的干净安装,将登录部分重写为

if ($this->attemptLogin($request)) {
  $request->session()->regenerate();
  $this->clearLoginAttempts($request);

  return $this->sendLoginResponse($request);
}
而不是这个

Auth::login($user);
return redirect('/')

还是同一个问题

最终解决了这个问题。我的主键是从外部api检索的自定义uuid。我将主ley恢复为默认值(
$table->increments('id');
,并且工作正常


我,原来我可以做
public$incrementing=false;
在我的用户模型中,它可以阻止Laravel认为它是一个递增字段,这可能解决了它,但我还没有测试它。

你没有忘记一些测试代码,比如
Auth::loginUsingId($User\u id,true);
或类似的东西??我跟踪了从调用
/login
到重定向到
/
的流程,包括中间件。(我在路由中使用
auth
中间件)我甚至在整个目录中搜索了
Auth::
,没有发现任何异常user2@example.com让id=2,尝试使用
Auth::loginUsingId(2,true);
而不在
login
方法中调用外部api,然后
返回重定向(“/”);
查看它是否会生成相同的问题!!仍然是相同的问题。使用
user1@example.com
。我尝试回显电子邮件(
Auth::user()->email
),并注释掉了重定向功能,得到了
user2@example.com
Auth::login($user);
return redirect('/')