私のangularjsアプリケーションでは、の/tasks
URLからタスクを取得しています。ユーザーが手動で/tasks
urlに行くと、彼はjsonデータを取得します。 show jsonデータをユーザーに表示しないようにする必要がありますか?ベストプラクティスは何ですか?たとえば、バックエンドでは、リクエストがajaxであるかどうかを確認できます。そうでない場合 - ベースURLにリダイレクトします。バックエンド - laravel 5
。Angularjsルート:ユーザーが手動でjsonデータを取得できないようにする
0
A
答えて
1
キーワード 'を防ぐ投稿者'から、特定のユーザーのアクセス権限を定義するためのロジックが必要になると思われます。
あなたは、ユーザーがこれまでのルートにアクセス前に承認ロジックの解決に固執することができます。 $routeProvider
の.when()
メソッドのresolve
プロパティを利用できます。 docsによれば、resolve
性がある
...
コントローラに注入しなければならない依存関係の任意地図。これらの依存関係のいずれかが約束である場合、ルータはそれらがすべて解決されるのを待つか、コントローラがインスタンス化される前にすべて拒否されるのを待ちます。
約束事がすべて解決された場合は、解決された約束事の値が注入され、$ routeChangeSuccessイベントが発生します。約束のいずれかが拒否された場合は、$ routeChangeErrorイベントが発生します。 、
決意がいるのそれぞれが約束を返すことが(注射用の依存関係など)の機能を取り込み、約束のいずれかが拒否された場合は、引用されたとして、エラーがスローされ、文字通りどちらのルートもビューが読み込まれます。
認証ロジックを動作させるには、ユーザーがルートを許可されていることを解決する、またはリクエストを拒否する、いくつかのバックエンド機能/サービスに対するAPIコールを実行する必要があります。あなたも約束の失敗に何かを実行したいと思います場合
.when('/tasks', {
resolve: {
authorize: function(authService){
//some api call to get either acceptance (e.g. status code 200) or rejection (status code 500) for the user being authorized
return authService.authorize();
}
},
controller: function(){
//route controller logic
}
})
あるいは、あなたは単にcatch()
ハンドラとの約束を連鎖によってそうと力強くから返された約束を拒否するエラーをスローする可能性catch()
それ自身。
.when('/tasks', {
resolve: {
authorize: function($location, authService){
//some api call to get either acceptance or rejection for the user being
return authService.authorize()
.then(function(){
//some logic on success of the promise
})
.catch(function(){
$location.path('/auth/login/');
throw 'Authorization error';
});
}
},
controller: function(){
//route controller logic
}
})
関連する問題
- 1. ユーザーが手動でジオロケーションを上書きできるようにする
- 2. jsonによる解析でデータが取得されない
- 3. AngularJS:ルートでルートプロバイダが動作しない
- 4. AngularJSのJSONファイルからデータを取得できません
- 5. jsonデータを取得できないのはなぜですか?
- 6. 1人のユーザーで2人のユーザーが相手のデータを取得する
- 7. root以外のユーザーがsudoを取得できないようにする
- 8. AngularJS - なぜ$ http.getでJSONを取得できないのですか?
- 9. jsonファイルからangularjsディレクティブ関数にデータを取得するにはどうすればよいですか?
- 10. ユーザーが他のルートにアクセスできないようにする - ReactJS - React-Router -
- 11. コントローラ内にルート解決データを手動で注入するにはどうすればよいですか?
- 12. 手動で新しいJSONデータ
- 13. angularJSでJsonファイルを取得する
- 14. AngularJS ng-repeat JSONからデータを取得
- 15. JSONでデータを取得するにはどうすればよいですか?
- 16. レイザーページでajaxでjsonデータを取得できない
- 17. jsonファイルから適切なデータを取得できませんAngularJS
- 18. PHPでjsonデータを取得しようとしています
- 19. AngularJS - IDでデータを取得
- 20. angularjs httpがデータのリストを取得するときにmvcで動作しない
- 21. Cache.Entryがjsonデータを取得しない
- 22. ポインタがデータを取得できない
- 23. AngularJSのポストメソッドで適切なデータを取得できません
- 24. AngularJSはJSON APIを通じてユーザーから関連データを取得します
- 25. AngularJS $ http.getで000webhostサーバーからJSONデータを取得できません
- 26. このようなJSONデータを取得する方法
- 27. JSONデータをAngularJSで取得し、返すオブジェクトにメソッドを追加する
- 28. DOJOのJsonアレイからどのようにデータを取得できますか?
- 29. Firefoxで動作するようにJavaScriptコードを取得できない
- 30. HttpWebRequestで動作するように双方向SSLを取得できない