2012-08-22 18 views
8

AngularJSでは、ユーザーがページに到着してログインしていない場合は、アプリ内のすべてのページによってリダイレクトされるログインコントローラがあります。ログインシーケンスの後、ユーザーをリダイレクトします彼らが来たページに戻ります。これを行う最善の方法は何ですか? $rootScopeに古い場所を保存しますか? '/login?returnto=' + $location.path()にリダイレクトしますか?組み込み関数はありますか?refererへのリダイレクト

答えて

5

$rootScopeを使用するか、サービスを定義して古い場所を保存することができます。ここには2つのアプローチを対比したSO postがあります。私は個人的にURLにreturnto=を追加するのが好きではありません。

このブログ記事Authentication in AngularJSは、あなたにとって興味深いかもしれません。そのブログで投稿したVojta(AngularJSの作者の一人)が$rootScopeの使用についてコメントしていることに注意してください。代わりにサービスをお勧めします。

+1

ログインページが角度 – JustGoscha

+1

@JustGoschaで処理されたページでない場合は、元のページを保存するためにCookieまたはサーバーサイドセッションオブジェクトを使用します。ログインに成功したら、Cookieの存在を確認するか、セッションからページを抽出してブラウザに送信します(JavaScriptや隠れたフォーム要素など)。 –

関連する問題