2017-01-29 6 views
0

私はLaravelの新機能で、ユーザーの認証方法に問題があります。私は現在、私のデータベースにユーザテーブルと企業テーブルを持っています。Laravel 5 - 2つのテーブルに対して認証を行います

私は、ユーザーが管理者またはgaurdsを使用していないですが、私は次のようにすべてのユーザーを認証するために探しているかどうかに基づいて、複数のテーブルを使用して認証の多数の例を見てきました

  1. ユーザーズemailpassword一致(userテーブルのフィールド)(userテーブルのフィールド)
  2. ユーザーズstatusが現在アクティブである
  3. ユーザー(企業のテーブルのフィールド)アクティブstatusで会社に所属

答えて

0

私はこの質問を掲載して以来、私はできるだけ多くのことを研究しており、最終的に満足のいく解決策に終わった。私はそれが可能な限りクリーンな方法であるかどうかはわかりませんが、それは私のために働きます。誰がこの恩恵を受けることができた場合は、ここで私が撮ったの手順は以下のとおりです。私は次のとapp\Http\Middleware\Authenticate.phpでハンドル方法を変更

# company/user relationship 
    public function company() { 
     return $this->belongsTo('App\Company', 'comp_id'); 
    } 

    # determine if company is active 
    public function activeCompany() { 
     $comp_stat = $this->company()->first(['status'])->toArray(); 

     return ($comp_stat >= 1) ? true : false; 
    } 

1)私はapp\User.phpモデルに次のコードを追加しました

したがって、技術的にユーザーは会社とユーザーのステータスチェックの前に認証されているため、Auth::logout()を手動で呼び出す必要があります。これは私に少し "汚い"と感じる理由でもありますが、私は他の方法を考え出すことができなかったので、うまくいっていなければなりませんでした!私は誰もがこれを達成するためのよりよい方法を見ているとコメントすることをお勧めします。

関連する問題