javascript - Ember Js 中的自定义 session 。如何设置/访问 session 信息

标签 javascript session ember.js ember-cli

因此,我遵循了有关如何使用 session token 进行授权的 YouTube 教程。主要 session 代码如下。

//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}
            ]
        });



    });
};

那么如何在 session token 上设置多个信息。喜欢 user_id 吗?因此,仅当 session 包含 user_id 或仅在 Controller 中使用它(如

)时,我才授予对页面的访问权限
click_if_authenticated(){ //use session.user_id here}

最佳答案

我建议您使用 ember-simple-auth 来授权用户图书馆。它使您可以检查 session 的状态(如果isAuthenthicaded)并显示您需要的内容。此外,可以定义需要经过身份验证的用户的路由和不需要身份验证的路由等。我认为这对您来说比您尝试采用的方法要容易得多。

关于javascript - Ember Js 中的自定义 session 。如何设置/访问 session 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41563361/

相关文章:

javascript - 如何为我的 div 添加时间延迟,使它们像幻灯片一样一个接一个地出现?

javascript - 将内容插入 DOM

java - 在 JUnit 3 中,测试共享 Spring 容器吗?

Java - 安全 session 管理的最佳实践

javascript - 如何将删除的记录同步到后台

javascript - 使用递归在二维数组中查找路径

javascript - window.location() 不工作,不打开页面

php - 如何使用cookies手动恢复 session ?

ember.js - 计算页面加载的计数器

javascript - Ember.js Controller 和 View 绑定(bind)(ember.js 方式...)