auth laravel 总是返回 false

Posted

技术标签:

【中文标题】auth laravel 总是返回 false【英文标题】:auth laravel always return false 【发布时间】:2019-06-28 21:03:30 【问题描述】:

我经常用 Laravel 创建登录,运行流畅,但是我不明白 Laravel php artisan make:auth 运行的实际过程。现在我想尝试自己创建这个登录过程以了解实际过程

我正在尝试让登录过程在没有 Laravel make:auth 的情况下由我自己运行。使用散列密码创建一个用户表。登录时Auth::attempt总是false,为什么?

public function authenticate(Request $request)

    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) 
        // Authentication passed...
        return redirect()->intended('dashboard');
    

这个功能在 Laravel Manually Authenticating Users 的文档中 如果我dd(Auth::attempt($credentials)); 总是返回false,所以它不能去路由/home

我的注册控制器是这样的:

public function create()

    $user = User::create([
        'name' => Input::get('name'),
        'email' => Input::get('email'),
        'password' => Hash::make(Input::get('password')),
    ]);

    return redirect::back();

如何处理?

【问题讨论】:

您在注册新用户时是否对密码进行哈希处理? 当然可以。我的测试密码是 123456,哈希后是 $2y$10$XU46gwygzpIv1yC.IK035ewRzyWLU67A0qatRrYzq09z98ePdJsgS 请在if (Auth::attempt($credentials)) 之前尝试在注册新用户时使用相同的哈希方法对其进行哈希处理并发布您获得的内容 $email = Input::get('email'); $password = Hash::make(Input::get('password')); $credentials = ['email' => $email, 'password' => $password];我改成这样但还是假的,为什么? 请用您的注册方法更新您的问题 【参考方案1】:

我认为 laravel 使用 json 回调和中间件以及一些处理的会话和 cookie 更好地使用基本身份验证 并从头到尾逐步检查所有工作是否正确 并查看当前发送到后端的数据

【讨论】:

是的,我知道。现在尝试可以是真的,现在问题是auth返回null,为什么?

以上是关于auth laravel 总是返回 false的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Auth::attempt 在 Laravel 5.3 中总是返回 false?

Laravel 5 Auth::attempt() 总是返回 false

Auth::attempt 总是返回 false — 不选择密码

Auth::attempt 总是返回 false,即使输入和哈希正确

Laravel Auth::attempt() 总是假的?

ttl 在 JWT Auth Laravel 中未过期