一部のリソースへのアクセスを提供するRESTサービスのフロントエンドとして、Angular2クライアントWebアプリケーションクライアントを作成しています。他のエンドポイント用のユーザー/パスワード認証を必要とするang2ウェブクライアントのバックエンドRESTサービスへのログインページ
RESTサービスは、(たとえばGET /protectedresource
、またはPOST /freeresource
、など)、基本的なHTTP認証で保護され、(例えばGET /freeresource
用)そのエンドポイントのいくつかのために認証されていないアクセスを許可しますされています。
私のAngular2クライアントでは、RESTサービスと同じ ":"でWebアプリケーションへのアクセスを許可するログページを実装したいと思います。このために私はこのチュートリアルを次のようだ:https://medium.com/@blacksonic86/angular-2-authentication-revisited-611bf7373bf9#.myifbz656
問題は、上記のチュートリアルでは、私のRESTサービスはありませんしながら、バックエンドRESTサービスは、あなたがあなたの資格情報を投稿した認証トークンを返す明示/login
エンドポイントを持っていることを前提としていることですそれらを必要とするエンドポイントのクレデンシャルがないか間違って渡されたときに認証エラーを返すだけです。このような状況のための代替記事やチュートリアルは見つかりませんでした。
このような場合にはどのような手続きを行うのが適切ですか?私は/login
エンドポイントをシミュレートすることができました。たとえば、アプリケーションのログインページから読み取ったユーザー名とパスワードで保護されたリソースにアクセスし、保護されたリソースGET /protectedresource
にアクセスしようとしました。この呼び出しでunauthorized
エラーが返った場合、満足している解決策ではありません(今日は保護されたリソースが明日自由にアクセスできるようになるでしょう)。この場合、Webアプリケーションのログインを実装するための「クリーン」な方法は何ですか?
このソリューションの唯一の問題は、特定のリソースに関する情報を実際に要求する前に、ログインページ(ログインの成功/失敗)でユーザーに即座にフィードバックを与えることができるということです。 UI)。だからこそ私は、提供されたユーザー名/パスワードが有効かどうかをチェックするために、いくつかの保護されたリソース(つまり、私のUIが実際にこれを必要とする前に)に "時期尚早の" GETリクエストを発行することを提案したのです。おそらく私の質問には、バックエンドのRESTサービスを変更することができないと、本当の解決策はありません。どうもありがとう。 – chrx