簡體   English   中英

在 LARAVEL 上登錄並重置密碼時出錯 9

[英]Wrong on login and restet pasword on LARAVEL 9

在此處輸入圖像描述

登錄失敗,憑據 email 和密碼正確,但 laravel 無法訪問儀表板

密碼已重置,email 是正確的,我嘗試在 myphpadmin 上使用憑據,但沒有輸入。

這是我的代碼

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\LoginRequest;
use App\Providers\RouteServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class AuthenticatedSessionController extends Controller
{
    /**
     * Display the login view.
     *
     * @return \Illuminate\View\View
     */
    public function create()
    {
        return view('auth.login');
    }

    /**
     * Handle an incoming authentication request.
     *
     * @param  \App\Http\Requests\Auth\LoginRequest  $request
     * @return \Illuminate\Http\RedirectResponse
     */
    public function store(LoginRequest $request)
    {
        $request->authenticate();

        $request->session()->regenerate();

        return redirect()->intended(RouteServiceProvider::HOME);
    }

    /**
     * Destroy an authenticated session.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\RedirectResponse
     */
    public function destroy(Request $request)
    {
        Auth::guard('web')->logout();

        $request->session()->invalidate();

        $request->session()->regenerateToken();

        return redirect('/');
    }
}

如果您在嘗試身份驗證時進行批量分配,請確保表單請求的密鑰必須與模型的 $fillable 密鑰相同。 然后試試這個:

     /**
     * Handle an incoming authentication request.
     *
     * @param  \App\Http\Requests\Auth\LoginRequest  $request
     * @return \Illuminate\Http\RedirectResponse
     */
    public function store(LoginRequest $request)
    {
        $credentials = $request->validated();

        if (Auth::attempt($credentials)) {
           return redirect()->intended(RouteServiceProvider::HOME);
        }
        return back()->with('message', 'The given credentials are not matched');
    }

如果您正在使用多個警衛,請嘗試以下操作:

    public function store(LoginRequest $request)
    {
        $credentials = $request->validated();

        if (Auth::guard('web')->attempt($credentials)) {
           return redirect()->intended(RouteServiceProvider::HOME);
        }
        return back()->with('message', 'The given credentials are not matched');
    }

我已經從你和我的實現中測試了這個示例代碼

<?php
    
    namespace App\Http\Controllers\Auth;
    
    use App\Http\Controllers\Controller;
    use App\Http\Requests\Auth\LoginRequest;
    use App\Providers\RouteServiceProvider;
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Auth;
    use Illuminate\Http\Request;
    use Hash;
    use Session;
    use App\Models\User;
    
    class AuthenticatedSessionController extends Controller
    {
        /**
         * Display the login view.
         *
         * @return \Illuminate\View\View
         */
        public function create()
        {
            return view('auth.login');
        }
    
        /**
         * Handle an incoming authentication request.
         *
         * @param  \App\Http\Requests\Auth\LoginRequest  $request
         * @return \Illuminate\Http\RedirectResponse
         */
        public function store(LoginRequest $request)
        {
          $request->validate([
            'email' => 'required',
            'password' => 'required',
          ]);
    
        $credentials = $request->only('email', 'password');
        if (Auth::attempt($credentials)) {
            return redirect()->intended('dashboard')
                        ->withSuccess('Signed in');
        }
   
        return redirect("login")->withSuccess('Login details are not valid');
        }
    
        /**
         * Destroy an authenticated session.
         *
         * @param  \Illuminate\Http\Request  $request
         * @return \Illuminate\Http\RedirectResponse
         */
        public function destroy(Request $request)
        {
           Session::flush();
           Auth::logout();
           return redirect('/');
        }
        /**
         * Registration page.
         *
         */
        public function registration()
        {
          return view('auth.registration');
        }
       
         /**
         * Store new user request handler
         *
         */
        public function storeUser(Request $request)
        {  
         $request->validate([
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6',
         ]);
            
         $data = $request->all();
         $check = $this->create($data);
          
         return redirect("dashboard")->withSuccess('have signed-in');
        }
         /**
         * Store new user
         *
         */
        public function create(array $data)
        {
           return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password'])
           ]);
        }    
     
        /**
         * Dashboard for user
         *
         */
        public function dash()
         {
           if(Auth::check()){
            return view('dashboard');
            }
   
           return redirect("login")->withSuccess('are not allowed to access');
         }
    }

請從您的項目中檢查並檢查 flash 消息是否密碼錯誤檢查密碼哈希是否正確

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM