Auth/(re)Routing 用 API を使用した Angular+RESTful クライアント側通信
これは、いくつかの異なる質問といくつかの異なるチュートリアルでカバーされていますが、私が遭遇した以前のリソースはすべて、頭に釘を打つものではありません.
一言で言えば、私はする必要があります
http://client.foo
からへの POST 経由でログインhttp://api.foo/login
logout
ルートを提供するユーザーに「ログイン済み」の GUI/コンポーネント状態を持たせる- ユーザーがログアウト/ログアウトしたときに UI を「更新」できるようにします。 これが一番イライラした
- ルートを保護して認証済み状態を確認し (必要な場合)、それに応じてユーザーをログイン ページにリダイレクトします。
私の問題は
- 別のページに移動するたびに、
api.foo/status
ユーザーがログインしているかどうかを判断するために呼び出しを行う必要があります (ルートに Express を使用している ATM)。ng-show="user.is_authenticated"
- ログイン/ログアウトに成功したら、ページを更新する必要があります (これを行う必要はありません)
{{user.first_name}}
。
// Sample response from `/status` if successful
{
customer: {...},
is_authenticated: true,
authentication_timeout: 1376959033,
...
}
私が試したこと
- http://witoldsz.github.io/angular-http-auth/ 1
- http://www.frederiknakstad.com/authentication-in-single-page-applications-with-angular-js/ 2
- https://github.com/mgonto/restangular (私の人生では、 を使用する方法と使用しない方法を理解できませんでした
POST
。post data
ドキュメントquery params
はこの問題について何も明らかにしませんでした。
心が折れそうになる理由
- すべてのチュートリアルは何らかのデータベース (多くの Mongo、Couch、PHP+MySQL、無限) ソリューションに依存しているように見えますが、ログイン状態を維持するために RESTful API との通信だけに依存しているものはありません。ログインすると、追加の POST/GET が とともに送信される
withCredentials:true
ため、それは問題ではありません - バックエンド言語を除いて、Angular + REST + Authを実行する例/チュートリアル/リポジトリが見つかりません。
自慢しすぎない
確かに、私は Angular の初心者であり、ばかげた方法でこれに取り組んでいても驚かないでしょう。誰かが別の方法を提案してくれたら嬉しいです。
私が ' を使用しているのは、Express
主に私が本当に愛しJade
てStylus
いるからです — 私はExpress
' ルーティングと結婚しておらず、やりたいことが Angular のルーティングでのみ可能である場合はあきらめます。
誰でも提供できるヘルプを事前に感謝します。紫色のリンクが 26 ページほどあるので、Google で検索しないでください。;-)
1このソリューションは Angular の $httpBackend モックに依存しており、実際のサーバーと通信する方法が不明です。
2これが最も近かったのですが、認証する必要のある既存の API があるため、passport の「localStrategy」を使用できず、私だけが使用するつもりだった OAUTH サービスを作成するのは非常識に思えました。