使用MEAN +护照更改基于用户angular色的视图
我正在使用MEAN堆栈和PassportJS设置一个authenticationscheme,通过一个OpenID提供者来authentication一个用户。 当用户未通过身份validation时,我会显示一个将用户redirect到OpenID提供程序的链接。 validation后,我想用“Welcome {user}”的行代替链接。
目前,我能够执行身份validation并存储返回的标识符,如下所示:
passport.serializeUser(function(user, done) { done(null, user.identifier); }); passport.deserializeUser(function(id, done) { User.findByIdAndUpdate(id, {}, { upsert: true }, function(err, user) { done(err, user); }); });
(我是否正确地执行序列化和反序列化函数?)
由此,用户标识被存储为一个cookie,也被作为数据库中的一个键。 现在在我的客户端代码中,根据用户是否经过身份validation,更改视图(login – >欢迎文本)的最佳方式是什么?
您可以使用检查用户是否在服务器端进行身份validation
req.isAuthenticated()
在您的服务器端代码中调用这个值,并以其他方式将结果传递给您的视图或客户端代码,如有必要,单独调用服务器的Ajax。 这来自PassportJS
在这个答案中find: 文件的“ensureAuthentication”“isAuthenticated”护照的function?
您的seriliazeUser
和seriliazeUser
函数看起来没问题。
据我记得,有一些平均值的代码在用户身份validation后设置了window.user
,并且在angular度方面也有一个Global
服务,它使用这些信息来设置authenticated
值。 你可以使用这些信息来改变你的观点。
看看头控制器代码。
https://github.com/linnovate/mean/blob/master/public/js/controllers/header.js
- 在基本Http Auth Express.js之后redirect
- 用户帐户激活,电子邮件确认和Passport / Node.Js邀请
- 具有“持久性标记”function的Node.js身份validation库
- JWT微服务体系结构中的身份validation
- hapi-auth-cookie不设置cookie
- nodejs护照authentication令牌
- 使用app.set('app_secret',data)将密钥存储在nodejs中是否安全?
- 使用Socket.io,Angular,JWTvalidation数据直到用户validation刷新后才可用
- 使用nano插入用户时,CouchDB会抛出“404丢失”错误