2017-09-13 15 views
0

私はLaravel 5.3をバックエンドとして使用し、AngularJSをフロントエンドとして使用しているアプリケーションで作業しています。認証のために、ユーザーの情報を外部APIと照合する必要があります。そうするために、私はLaravel 5/AngularJSカスタム認証のベストプラクティス

  1. ユーザーは
  2. AngularJSフロントエンドはLaravelは認証を使用しています
  3. Laravelバックエンドに送信する情報を入力する、すなわちLaravelの組み込み認証のカスタムバージョンを使用してきました: :その時点から、外部のAPIに対して
  4. をチェックどちらの資格情報が間違っているユーザーに伝えるか

私の質問があるのホームページに移動するにはログイン、それはLaravelの釜の使用を継続する悪い習慣です認証ミドルウェア機能で、ユーザーがアプリケーションを移動したときにそのユーザーが認証されているかどうかを確認します。

トークンベースの認証(主にJWT)を使用して議論するようですが、私の方法は間違いなく動作しますが、私はAngularJSを初めて使っているので、ベストプラクティスに従っています。

ありがとうございました!

答えて

0

ベストプラクティスについては、さまざまな方法があります。 laravelの組み込み認証を使用することもできますが、セッションIDがリクエストごとに送信され続けるか、Auth :: userがnullになるようにする必要があります。

APIに関しては、通常セッションデータを持ちたくないのですが、JWTやOAUTHのようなトークンを使う主な理由は、ステートレス(ほとんどの場合)だからです。あなたはJWTトークンを使用している場合、あなたはこのようなもので、余分なmiddelwareを追加することができます。

if (JWTAuth::getToken()) { 
     JWTAUth::parseToken()->authenticate(); 
    } 

をあなたが期待どおりに動作します。この後、laravelの認証方法のような何かをするとき。これは、パッケージに付属のjwt.authミドルウェアと組み合わせて使用​​します。少しでも物事をクリアする希望:

+0

洞察力ありがとう!私はあなたが言っていることを理解していると思いますが、私は実装上まだ少しばかりです。 LaravelのPassportパッケージの使用に関する考えがあれば、 – abe678

+0

このメソッドを実装すると、私が記述したミドルウェアが、ラーベル標準の認証ミドルウェアの前に使用されていることを確認するだけです。 私はLaravelのPassportパッケージを使用したことはありませんが、私がドキュメントで読んだものから、JWTのようなトークンベースのサービスも使用しました。おそらくそれはララベル自体から来ているので実装するのはさらに簡単です。私はドキュメント[Laravel Passport](https://laravel.com/docs/5.4/passport)に従うと、認証でどこに行きたいのですか:) –