2017-01-10 9 views
0

セッショントークンを使用する権限についてのYouTubeチュートリアルに続きました。主なセッションコードは次のとおりです。Ember Jsのカスタムセッション。セッション情報を設定/アクセスする方法

//app/services/session.js 
import Ember from 'ember'; 

export default Ember.Service.extend({ 
    token: null, 
    authenticate(log, pass) { 
     return Ember.$.ajax({ 
      method: 'POST', 
      url: '/token', 
      data: {username: log, password: pass} 

     }).then((info)=>{ 
      this.set('token',info.access_token); 
     }); 
    } 
}); 

ここにサーバーが設定されています。

//server/index.js 

const bodyParser = require('body-parser'); 

module.exports = function(app) { 
    app.use(bodyParser.urlencoded({ extended: true})); 

    app.post('/token', function(req, res){ 
     console.log(res); 

     if(req.body.username === 'erik' && 
      req.body.password === 'password') { 
       res.send({ access_token: 'secretcode'}); 
      } else { 
       res.status(400).send({ error: 'invalid_grant'}); 
      } 


    }); 

    app.get('/api/students', function(req, res) { 

     if(req.headers.authorization !== 'Bearer secretcode'){ 
      return res.status(401).send('Unauthorized'); 
     } 

     return res.status(200).send({ 
      students: [ 
       { id: 1, name: 'Erik', age: 23}, 
       { id: 2, name: 'Bob', age: 52} 
      ] 
     }); 



    }); 
}; 

どのようにセッショントークンに複数の情報を設定しますか? user_idのように?だから私は、セッションが

click_if_authenticated(){ //use session.user_id here} 

答えて

1

のようなコントローラでそれを使用してuser_idかだけが含まれている場合にのみ、私はember-simple-authライブラリをユーザーに許可するためにあなたを示唆しているページへのアクセス権を与えます。 isAuthenticicが存在し、必要なコンテンツを表示すると、セッションの状態を確認することができます。さらに、認証されたユーザーと、認証が不要な場所などを必要とするルートを定義することが可能です。これは、作成しようとしているものよりはるかに簡単なアプローチになると思います。

+0

タスクはpouchdbとともに実装することでした。 ember-simple-authの場合、どの時点でpouchdbと対話しますか?ガイドでは、component-componentjs-service-mock_serverを使用してデータを格納します。どのようにこの問題にアプローチするかについての任意のアイデアを得た? –

関連する問題