【发布时间】:2015-12-31 21:30:30
【问题描述】:
我是一个完全的新手,我一直在摆弄 Meteor 1.0 示例待办事项列表应用程序以将 google oauth 连接到它。
当我这样做时,页面不再正确呈现,因为根本没有设置 {{username}}。
https://docs.meteor.com/#/full/meteor_users 表示“用户名:标识用户的唯一字符串”。但是 oauth 的东西不会为你创建一个。
Connect service to existing meteor account 谈到将现有帐户链接到另一个服务,但在这种情况下,我只想使用外部服务。
https://stackoverflow.com/questions/25182903/meteor-facebook-registration使用onCreateUser()手动设置
user.username = user.services.facebook.name
但这不能跨服务移植,也不能保证唯一性。
https://github.com/aldeed/meteor-collection2 定义了用户模式,因此 username 是必需的。
当我转储用户表(删除了一些字段)时,谷歌帐户没有用户名,并且没有字段可以真正自动获取该值,因为可能会发生冲突。可以使用电子邮件,但我宁愿用户名不是电子邮件地址。我是否只是强制用户指定所需的用户名?
meteor:PRIMARY> db.users.find()
{
"_id" : "YNWt2cATMsKFG7od6",
"createdAt" : ISODate("2014-11-05T11:08:00.406Z"),
"services" : {
"password" : {
},
},
"username" : “a_user”
}
{
"_id" : "CyQsJqcez3kWTRHyQ",
"createdAt" : ISODate("2014-11-05T12:09:40.139Z"),
"profile" : {
"name" : “Alice User”
},
"services" : {
"google" : {
"email" : “a_user@example.com",
"family_name" : “User”,
"gender" : “female",
"given_name" : "Alice”,
"id" : "1115",
"name" : “Alice User,
}
}
}
处理这个问题的正确方法是什么?
【问题讨论】:
标签: meteor