2017-01-10 4 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처럼? 세션이 user_id있는 경우에만 그래서 페이지에 대한 액세스 권한을 부여하거나 내가 ember-simple-auth 라이브러리와 사용자에게 권한을 부여 할 제안

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

답변

1

처럼 컨트롤러에서 사용. 이 정확하지 않으면 인 경우 세션의 상태를 확인하고 필요한 내용을 표시 할 수 있습니다. 또한 인증 된 사용자를 필요로하는 경로와 인증이 필요하지 않은 경로를 정의 할 수 있습니다.이 방법은 사용자가 시도하는 것보다 훨씬 쉬운 접근 방법이라고 생각합니다.

+0

작업은 pouchdb와 함께 구현하는 것이 었습니다. ember-simple-auth의 경우 pouchdb와 어떤 시점에서 상호 작용합니까? 가이드에서는 component-componentjs-service-mock_server를 사용하여 데이터를 저장합니다. 이 문제에 접근하는 방법에 대한 아이디어가 있습니까? –