亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何驗證密碼是否與數據庫中的密碼相同?

如何驗證密碼是否與數據庫中的密碼相同?

PHP
倚天杖 2023-09-22 15:00:05
我在 Laravel 中有登錄表單,它使用電子郵件和密碼登錄網站。我已經進行了所有驗證,除了密碼之外一切正常。當我輸入錯誤的密碼時,它會進入空白頁,我想在密碼字段下寫一些錯誤。我查看了相同的內容:密碼驗證,但它不起作用。任何幫助表示贊賞。這是我的代碼。登錄控制器.phppublic function login(Request $request){    $rules = [        'email'    => 'required|email|exists:App\User,email',         'password' => 'required|alphaNum|min:5'    ];    $validator = Validator::make($request->all(), $rules);    if ($validator->fails()) {        $request->session()->put('data', $request->input());        return redirect()->route('login')            ->withErrors($validator->errors())            ->withInput($request->session()->put('data', $request->input()));    } else {       $userData = array(            'email'     => $request->get('email'),            'password'  => $request->get('password')        );    }        if (Auth::attempt($userData)) {        return redirect()->route('dashboard');    } else {                redirect()->route('login');    }}登錄.blade.php<div class="login-page">    <div class="login-box">        <div class="card mb-0">            <div class="card-body login-card-body">                <p class="login-box-msg font-weight-bold">Sign in to start your session</p>                <form method="POST" class="mb-4" action="{{route('login') }}">                    @csrf                    <div class="input-group mb-3">                        <input id="email" type="email" placeholder="Email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>                        <div class="input-group-append">                            <div class="input-group-text">                                <span class="fas fa-user"></span>                            </div>                        </div>                        @error('email')                        <span class="invalid-feedback" role="alert">                            <strong>{{ $message }}</strong>                        </span>                        @enderror
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

假設您的電子郵件是unique,您首先必須獲取其所在的數據庫行$request->email$user = User::where('email', $request->email)->first()

然后您可以使用以下方法進行檢查:Hash::check($request->password, $user->password)

https://laravel.com/docs/7.x/hashing

@編輯

要將其添加到規則中,您必須創建一個規則類:php artisan make:rule myRuleName 然后您將這樣調用它:

$rules = [
       'email'    => 'required|email|exists:App\User,email', 
        'password' => ['required','alphaNum','min:5', new myRuleName()],
    ];

在您的自定義規則類中,您將找到一個passes($attribute, $value)函數?,F在你可以將我上面編寫的代碼插入到這個方法中。你必須替換$request->password$value


查看完整回答
反對 回復 2023-09-22
  • 1 回答
  • 0 關注
  • 138 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號