2016-07-10 6 views
1

私は実際に認証メカニズムには慣れていないので、AngularフロントエンドとPlay Framework(Java)バックエンドで認証メカニズムを設計する方法がわかりません。Angular + Play Framework(Java)を使用したSPA認証

  1. アングルフロントエンドは、Play Framework認証メカニズムにREST認証コールを送信します。
  2. プレイは角度が理想的には私はCSRFトークンを使用するようにしたいと思い、そのトークン

に基づいて、他のREST呼び出しを行うことができます

  • いくつかのトークン(角に送信)を発生します。私はAngular認証とPlay認証の統合に関する情報源はほとんど見つかっておらず、いずれもアプリで実装するのに十分なものはありませんでした。もちろん、JavascriptとPlayの認証を統合する方法については多くの情報源がありますが、これはまったく異なるケースです。

    私の質問は、そのフレームワーク/機能を使用して動作させるためにどのように設計し、その領域に角度とプレーを統合するかということです。つまり、Playでその認証フレームワークを使用し、Playでその機能を実装し、そのメソッドをAngularで使用し、そのようにすべてを接続するなどです。もちろん、より具体的な手順も歓迎します。最後に、データベースにパスワードハッシュを保存したいと思っています。ハッシュ方法(プレイメカニズムやその他のフレームワーク)のヒントも役立ちます。

  • 答えて

    0

    JWTのようなものを使用して、トークンを作成して角型アプリに渡すことができます。基本的にこのフローは次のようになります。

    • ユーザーは認証(例:電子メールとパスワード)を提供します。
    • この情報をPlayに送信すると、資格情報を確認してすべてが正常であればトークンを生成できます。そのトークンには、ユーザーが持っているパーミッションやロール、作成日などの多くの情報が含まれています。
    • あなたのトークンを手に入れたら、角度付きアプリでそれを使うことができます。 Play側では、提供されたトークンが有効であるかどうかを確認する必要があります(アプリケーションから生成され、期限切れではありません)。

    これらのトークンを保存することもできますトークンブラックリストやトークンの自動更新などを実装したい場合は...

    その他のオプションは、トークン(例:base64ランダム文字列)を生成して関連付けられたデータベースに格納します必要な情報(有効期限など)、またはPlayでCookieを設定してアプリで使用できるようにすることもできます(デフォルトのPlay CookieはAngularで直接使用することはできません)。

    パスワードハッシュに関しては、どのようなscala/javaライブラリを使用することもできますが、安全なものを選択する必要があります。通常はBCryptを使用しますが、その他のオプション(scrypt、pbkdf2など)が多数あります

    関連する問題