Laravel 7 自定义登录

我正在 Laravel 中进行自定义登录,当我尝试检查登录表单的数据时,我无法登录。在注册中,我对密码进行哈希处理以将其存储在数据库中,因此登录表单的密码字段永远不会等于存储的数据库。


这是我的创建函数,我在其中注册用户:


   public function create()

{

    $this->validateFields();


    if (request('profileImage') !== null) {

        $this->storeImage();


        User::create([

            'username' => request('username'),

            'email' => request('email'),

            'password' => Hash::make('password'),

            'profileImage' => request()->profileImage->getClientOriginalName(),

        ]);


    }



    User::create([

        'username' => request('username'),

        'email' => request('email'),

        'password' => Hash::make(request('password')),

    ]);



    return Redirect::to(route('user.showLoginForm'));


}

validateFields 和 storeImage 与问题无关......


这是我的登录功能:


    public function login()

{

    request()->validate([

        'email' => 'required',

        'password' => 'required'

    ]);


    $credentials = array(

        "email" => request("email"),

        "password" => bcrypt(request("password"))

    );


    if (Auth::attempt($credentials)) {

        return 'exit!';

    }


    return 'Error';


}

这是我的登录表单:


  <div class="container">


    <div class="row pt-2">

        <div class="col-sm-12 justify-content-center">

            <div class="card">

                <div class="card-header">

                    <h4>

                        Login

                    </h4>

                </div>


慕沐林林
浏览 239回答 3
3回答

杨__羊羊

自定义登录 100% 无需授权即可工作,&nbsp;use Hash;$data->password = Hash::make(($request->password)); Encript Passwordpublic function requestEmployee(Request $request){if ($data = AddEmployee::where('name', $request->name)->first()) {&nbsp; &nbsp; $pass = Hash::check($request->password, $data->password);&nbsp; &nbsp; if ($pass) {&nbsp; &nbsp; &nbsp; &nbsp; echo "sucess";&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; echo "Password Not Valid";&nbsp; &nbsp; }&nbsp;} else {&nbsp; &nbsp; echo "Username Not Valid" . "<br>";&nbsp;}}

肥皂起泡泡

请尝试一下:public function login(){&nbsp; &nbsp; request()->validate([&nbsp; &nbsp; &nbsp; &nbsp; 'email' => 'required',&nbsp; &nbsp; &nbsp; &nbsp; 'password' => 'required'&nbsp; &nbsp; ]);&nbsp; &nbsp; $credentials = array(&nbsp; &nbsp; &nbsp; &nbsp; "email" => request("email"),&nbsp; &nbsp; &nbsp; &nbsp; "password" => request("password")&nbsp; &nbsp; );&nbsp; &nbsp; if (Auth::attempt($credentials)) {&nbsp; &nbsp; &nbsp; &nbsp; return 'exit!';&nbsp; &nbsp; }&nbsp; &nbsp; return 'Error';}

当年话下

&nbsp;$password=Hash::check($request->password,$user->password);使用它会返回 true 或 false或者只是使用&nbsp; $credentials = array(&nbsp; &nbsp; "email" => request("email"),&nbsp; &nbsp; "password" => request("password"));没有 bcrypt
打开App,查看更多内容
随时随地看视频慕课网APP