通过用户名或id访问配置文件页面
Access profile page by username or id
我使用Meteor中的用户系统。帐户是用电子邮件创建的,但我想让用户在设置中设置唯一的用户名。
我有这条路线
Router.route('userProfile', {
path: '/users/:userId',
template: 'userProfile',
fastRender: true,
waitOn: function() {
return Meteor.subscribe('singleUser', this.params.userId);
},
data: function() {
return {
user: Meteor.users.findOne(this.params.userId)
};
}
});
,但是如果用户设置了他/她的用户名,路由路径应该改为path: '/:username',
。我想Facebook、LinkedIn等也是这么做的。
只需选择单个参数并在出版物和数据函数中检查它:
Meteor.publish('singleUser', function (userIdOrName) {
return Meteor.users.find({ $or: [ { _id: userIdOrName }, { username: userIdOrName } ] }, {limit: 1});
});
Router.route('userProfile', {
path: '/users/:userIdOrName',
template: 'userProfile',
fastRender: true,
waitOn: function() {
return Meteor.subscribe('singleUser', this.params.userIdOrName);
},
data: function() {
return {
user: Meteor.users.findOne({ $or: [ { _id: this.params.userIdOrName }, { username: this.params.userIdOrName } ] })
};
}
});
注意,在这种情况下,您应该确保用户不能将另一个人的ID设置为他或她的用户名,否则他/她可以冒充这个人。
相关文章:
- 如何从nginx访问节点文件
- 使用javascript配置文件作为handlebas博客模板,但配置不是't工作正常
- 访问javascript文件输入变量的值
- 我可以访问量角器配置文件中的参数吗
- 如何从配置文件中设置Angular值
- SoundCloud API-基于系统中的ID创建用户配置文件
- 先在Angular中加载配置文件,然后再加载其他文件
- 正在读取节点中的配置文件
- 检查蒸汽配置文件url是否有效
- 将配置文件文件夹移动到sdcardfirefoxmobile14.0
- 可能有一个javascript和php的配置文件
- 如何访问任务文件中的 Sails 配置变量
- 通过oauth令牌passport.js访问用户配置文件
- 仅使用访问令牌在节点中获取Google+用户配置文件
- 兴访问用户配置文件 API
- 访问配置文件中的baseURL显示未定义的值
- 通过用户名或id访问配置文件页面
- 如何使用javascript访问用户本地配置文件
- 通过第三方web应用程序'用户帐户配置文件实现安全的社交媒体访问
- 如何访问已登录的G+用户的公共配置文件(至少是userid)