2017-02-13 8 views
1

私はかなり新しくEmberを使い慣れており、ユーザーログインでアプリを作成しようとしています。私はAuth0を使ってこれを解決し、資格情報を入力した後、ユーザーはprotected.hbsにリダイレクトされます。私の質問は、ログイン内の他のテンプレートもどうやって保護するかです。Emberは複数のテンプレートを保護します

import Ember from 'ember'; 
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; 

export default Ember.Route.extend(AuthenticatedRouteMixin); 

と、このような保護されたコントローラ::私は例の保護/ユーザーページのためではなく、私はしません生成されたユーザ・ページ上で生成しようとしました

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    session: Ember.inject.service() 
}); 

このような保護されたルートの外観コントローラーからセッションにアクセスできるようです。もちろん、すべてのページのコントローラーを作成できますが、それを解決する良い方法のようには思えません。保護されているページをより効率的に保護する方法はありますか?保護された/ユーザーページが親から保護された状態になるようにし、セッションからデータにアクセスできるようにする。

申し訳ありませんが、単純な質問ですが、私はこれには本当に新しいので、他の場所で情報を見つけることができませんでした。

答えて

0
import Ember from 'ember'; 
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; 

export default Ember.Route.extend(AuthenticatedRouteMixin); 

はあなたがログインするユーザーを持っている必要があり、すべてのルートでこれを行う必要があります。あなたは、電子メールのように、そこからデータを必要としますが、ほとんどの場合、あなただけで、それを必要とする場合にのみ、コントローラ上のセッションをインポートしますあなたが私がログイン情報でnavbarを持っていると推測しているアプリケーションコントローラ。

他の方法は

this.route('protected', { path: '/protected' }, function() { 
    this.route('posts', {path: '/posts'}); 
    }); 

例えば、ネストされたルートを使用することで、その後protected.hbs

{{outlet}} 

で、あなただけの

import Ember from 'ember'; 
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; 

export default Ember.Route.extend(AuthenticatedRouteMixin); 

でこれを行う必要があります保護されたルート

しかし、私は大したことは何もわかりません。基本的な手順に従ってください。

コントローラーから何かが必要な場合は、コントローラーを作成すると、複雑すぎることがありません。

関連する問題