角4& Passport API身份验证

时间:2017-09-04 15:45:09

标签: javascript node.js angular express passport.js

我正在使用MEAN Stack构建一个Web应用程序。我想要实现的是当用户登录他的用户信息时,我的REST API会从Angular获取。我设置了API路由http://localhost:3000/api/user/profile,它应该用json响应,包括用户对象。

router.get('/user/profile', function(req, res, next){
    //console.log(req);
    if(req.user === undefined){
        res.json({
            success: false,
            msg: 'Unautorized'
        });
    } else {
        res.json({
            success: true,
            user: {
                id: req.user.steam.id,
                name: req.user.steam.name,
                avatar: req.user.steam.avatar,
                avatarmedium: req.user.steam.avatarmedium,
                avatarfull: req.user.steam.avatarfull
            }
        });
    }
});

当用户登录Angular时,启动GET-Request:

ngOnInit() {
    this.authService.getProfile().subscribe(profile => {
        this.user = profile.user;
        console.log(profile);
    },
    err => {
        console.log(err);
        return false;
    });

}

getProfile():

getProfile(){
    return this.http.get('http://localhost:3000/api/user/profile')
    .map(res => res.json());
}

当我加载我的网站时,登录并转到配置文件页面,返回的对象包含成功:false和消息“Unauthorized”而不是用户对象。为什么会这样?

1 个答案:

答案 0 :(得分:0)

我完全重新设计了我的方法。我实现了json web令牌,它现在在登录后通过url参数向用户发送一个令牌(包含所有用户数据)。

相关问题