如何使用JWT令牌显示当前登录用户的用户名

时间:2019-02-27 15:29:37

标签: node.js express authorization jwt express-jwt

我正在将Express / Node.js与mongoDB一起使用。 用户登录/注册时,他们会提供 JSON Web令牌(JWT)和 它们被重定向到“ homepage.hbs”。 如何在当前登录用户的主页上显示用户名?

这是我用于登录用户的代码。

Auth.js

objFileInputStream = getClass().getClassLoader().getResourceAsStream(propFile)

Index.js

    $("#login-form").submit(function (event) {
                event.preventDefault();
                $.ajax({
                    type: 'POST',
                    url: '/users/login',
                    dataType: 'json',
                    data: {
                        'user_name': event.target.inputUsername.value,
                        'password': event.target.inputPassword.value
                    },
                    success: function(token){
                         $(location).attr('href', '/homepage' );


                    },

Users.js

router.get('/homepage', function(req, res, next) {
    try {
        var jwtString = req.cookies.Authorization.split(" ");
        var profile = verifyJwt(jwtString[1]);
        if (profile) {
            res.render('homepage');
        }
    }catch (err) {
            res.json({
                "status": "error",
                "body": [
                    "Not logged in!"
                ]
            });
        }
});

1 个答案:

答案 0 :(得分:0)

如果我了解您的问题,我认为您只需要在渲染视图时将一些局部变量传递给您的视图即可。例如:

res.render('homepage', { profile })

现在,在homepage模板中,将有一个名为profile的对象,其中包含各种用户数据。有关其他信息,请参见res.render Express docs