簡體   English   中英

無法在Laravel 5.1上使用創建的模型進行身份驗證

[英]Can't authenticate with created model on Laravel 5.1

在注釋為“這不起作用”的代碼中,我無法授權。

我得到用戶對象並使用Auth::login($user)但是它不起作用。

此刻用戶在數據庫中創建。

  public function login(Request $request) 
  {
    if(Auth::check()) {
      return redirect('home');
    }
    if($request->isMethod('post')) {
      if($request->has('username') && $request->has('password')) {
        $inputs = $request->except('_token');
        if(!Auth::attempt(['username' => $inputs['username'], 'password' => $inputs['password']])) {
          $user = $this->registerUser($inputs);
          if($user) {
            Auth::login($user);
          }
        } 
      } 
      return (Auth::check()) ? redirect()->route('home') : redirect()->back()->with('form_error', true);
    }
    return view('pages.auth.login');
  }

User.php也許這里出問題了?

namespace App\Models\system;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model implements AuthenticatableContract,
                                    AuthorizableContract,
                                    CanResetPasswordContract
{
    use Authenticatable, Authorizable, CanResetPassword;
    protected $primaryKey = 'uid';
    protected $table = 'eltk.dbo.system_users';
    protected $guarded = [];
    protected $hidden = ['password', 'remember_token'];
}

讓我們逐步開始。

  1. 為什么在僅需要處理登錄邏輯的方法上創建用戶?
  2. 您的數據庫名稱是什么? 是eltk還是dbo還是什么? 在“數據庫”下的config / database.php或.env中定義它,並在模型中僅使用表名而不是整個表的名稱是沒有必要的。
  3. 在登錄方法中,您需要這樣的東西:

     public function processLogin(Request $request){ if(Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password'), 'active' => 1])){ return redirect('/'); }else{ return redirect('login')->withMessage('User with this email and/or password does not exist or your account is not active.'); } 

    }

順便說一句,當您隨后在if-else語句中登錄用戶時,您需要在某些路徑上將其重定向。

暫無
暫無

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

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