簡體   English   中英

Laravel通過密碼限制網站

[英]Laravel restrict site by password

我需要通過密碼(沒有用戶名,只有密碼)提供對Laravel 5網站的身份驗證。 僅當用戶鍵入正確的密碼時,才可以訪問網站。 它不能是基本的服務器授權,因為我必須實現一些設計。

我知道可以在Laravel中使用多重身份驗證來做到這一點,但我不知道如何使其與我的應用程序中的標准(用戶和密碼)身份驗證一起使用。

有人可以幫忙嗎?

內置了手動身份驗證功能,僅檢查密碼。

    public function authenticate(Request $request)
    {
        $password=$request->get('password');
        if (Auth::attempt(['password' => $password]) )
        {     
            return redirect()->intended('/home');   
        }
        else 
        {
            return redirect('/login');
        }
     }

您可以執行以下操作:

Route::get('/', function () {
    if (session('password_entered')) {
        return view('homepage');
    }

    return view('enter_password_page');
});

Route::post('/', function () {
    $password_to_website = 'RedMonkey';
    $password = request('password_field');

    if ($password && $password === $password_to_website) {
        session(['password_entered' => true]);
        return view('homepage');
    }

    return back()->withInput()->withErrors(['password' => 'Password is incorect']);
});

我沒有嘗試過,但是這個想法就在那里。 您可以使用此中間件,也可以直接在路由/控制器中直接使用它。

如果我正確理解了您的問題,那么您只希望在站點上進行密碼身份驗證而無需用戶名。 為此,我將執行以下操作:

  • 使用電子郵件“ passwordlogin@yoursite.com”和所需密碼創建一個用戶

  • 更新您的登錄表單以僅要求輸入密碼

     <form method="POST" action="/login"> {!! csrf_field() !!} <input type="password" id="fieldPassword" name="password" required> <label for="fieldPassword" class="label">Password</label> 
  • 更改POST“ / login”路由以觸發Auth \\ AuthController類中名為“ passwordLogin”的方法

     <?php Route::post('/login', 'Auth\\AuthController@passwordLogin'); 
  • 在Auth \\ AuthController類中創建一個名為“ passwordLogin”的方法,該方法使用Auth :: attempt()來驗證密碼。 將電子郵件地址硬編碼為您在步驟1中設置的相同地址

     public function passwordLogin(Request $request){ if($request->has('password')){ if(Auth::attempt(['email' => 'passwordlogin@yoursite.com', 'password' => $request->input('password')])) { // User has the correct password return redirect()->('/home'); } } // Login failed return redirect()->intended('/login'); } 

暫無
暫無

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

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