首页 > 解决方案 > Laravel 5.1 注册后 Auth::attempt no access to the user data on another page

问题描述

在系统上注册后,我在访问经过身份验证的用户数据时遇到问题。

在我的注册过程中进行一些验证后,我有这一行:

if (Auth::attempt(array(
        'username' => $customer->username,
        'password' => $data['password']
    ))) {
        return redirect('profile-setup');
    }

我已经尝试过在这个 if 语句中查看用户数据,如下所示:

dd(Auth::user());

这实际上有效,我可以看到用户数据。

但是,当我进入刀片配置文件设置时,我尝试了相同的模具,但我得到一个空值。

我不确定我错过了什么。

如果有什么需要我提供的,请告诉我。任何帮助都将不胜感激。

谢谢

标签: phplaravelauthenticationlaravel-5

解决方案


您可以查看您的案例中是否存在任何这种情况:

  • protected $primaryKey = 'user__table_id_column_name';在用户模型中指定
  • 如果您在 larvel 的核心中看到方法签名,您将看到:

公共函数尝试(数组 $credentials = [],$remember = false,$login = true){ .. }

所以尝试传递第二个参数来尝试true,看看它是否仍然存在。这不应该是这种情况,因为这应该自动发生,但为了安全起见尝试一次

  • 如果您有任何用于调试,请删除 echo 语句
  • 检查您是否在最后一个 dd 之前错误地调用了 Auth::logout()
  • 尝试重定向()->预期('profile-setup');

如需更多帮助,请查看线程:Laravel Auth:attempt() will not persist login


推荐阅读