2016-04-03 1 views
2

私は現在AngularJSアプリケーションで作業していますが、私は次のロードブロックを打ちました。ユーザーが認証されているかどうかに応じてリンクを非表示または表示します - AngularJs

ユーザーがウェブAPIを呼び出してユーザーを認証する際に、のページが表示されています。現在、クレーム認証を使用してCookieなどを設定していますが、期待したとおりに動作します。ユーザーがログインしているかどうかに応じてリンクが表示されます。私は簡単に私がlayout.cshtml内で次の手順を実行して、MVCで働いてきたとき、これを解決することができました:

@if (User.Identity.IsAuthenticated) 
{ 
    Show additional links to user once they're authenticated 
} 
else 
{ 
    Show the standard links 
} 

私はストレートHTML(なしRazorファイル)を使用していますが、私は内にこれを構築していますようVisual Studio.htmlページ内のユーザーがauthenticatedかどうかによって、特定のリンクを表示する方法がわかりませんか?

答えて

1

使用ng-if

<div ng-if="user.identity.isAuthenticated"> 
    <a>Important link here</a> 
</div> 
<div ng-if="!user.identity.isAuthenticated"> 
    <a>Standard link here</a> 
</div> 

このような何かはあなたの要件に応じて、働くだろう。しかし、これはすべてクライアント側なので、サーバー側と同じようにセキュアではありません。だからそれには注意してください。

+0

こんにちはルカ、コードスニペットありがとう。あなたはあなたが言ったことを具体的に教えていただけますか?つまり、サーバー側ほど安全ではないでしょうか? –

+0

@ Luka私はそれがセキュリティの点で本当に重要ではないと思う、リンクがアプリの保護されたルートだと言う。ユーザーが既にログインしていることを確認するために、保護された状態に解決を置くことができます。また、適切なシステムがサーバー側で正常に作成されているかどうかを確認することもできます。とにかくそれをバイパスすることができれば、ユーザーは空のテンプレートを見るだけで、何も危険はありません。 –

+0

は、ユーザーが認証されたときにトークンを与え、トークンが存在するかどうかを確認できますか?そうでなければどこかにリダイレクトされます。 – nCore

関連する問題