Auth::attempt 始终返回 false,即使输入正确

这是我使用的外墙


namespace App\Http\Controllers;

use App\User;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

use Illuminate\Support\Facades\Hash;

我已经使用 bcrypt 成功创建了带有散列密码的用户注册页面。


    //Get singnup view

    public function getSignup() 

    {

        return view('user.signup');

    }

    //Process signup

    public function postSignup(Request $request)

    {

        $this->validate($request, [

            'email' => 'email|required|unique:users',

            'password' => 'required|min:4'

        ]);

        $user = new User([

            'email' => $request->input('email'),

            'password' => bcrypt($request->input('password')),

        ]);

        $user->save();

        return redirect()->route('product.index');

    }

现在我被困在登录页面。Auth::attempt 总是返回 false。我什至尝试在我的数据库中存储一个普通密码并在没有 bcrypt 的情况下登录,但它仍然返回 false。我不知道我现在哪里错了。


//Get signin view

    public function getSignin() 

    {

        return view('user.signin');

    }

    //Process signin

    public function postSignin(Request $request) 

    {

        $this->validate($request, [

                'email' => 'email|required',

                'password' => 'required|min:4'

                ]);

        $credentials = array(

            'email' => $request->input('email'), 

            'password' => bcrypt($request->input('password'))

                );

        if(Auth::attempt($credentials))

        {

            return redirect()->route('user.profile');

        }

        return redirect()->route('product.index');

    }


ITMISS
浏览 153回答 2
2回答

FFIVE

你不需要bcrypt()在Auth::attempt(). 将其删除并重试。

慕尼黑5688855

在中config\auth,change guard driver setting 设置为api。'defaults' => [    'guards' => 'api',    'passwords' => 'users']但是 Laravel 不支持attempt()guard 函数api。因此,您应该使用一些包,例如(您可以在此处Passport参考)或者更简单,只需配置你的保护驱动程序Auth::guard('api')->attempt($credentials)希望这能解决您的问题。
打开App,查看更多内容
随时随地看视频慕课网APP