如何通过Useraccounts包从第三方社交登录中提取用户名?

时间:2015-05-26 16:21:36

标签: javascript meteor meteor-accounts

我正在使用Merac的Useraccounts包。

我已配置它,用户名/电子邮件+密码登录正在使用登录时显示的用户名(用户需要在注册时输入用户名)。

但是当我点击社交登录按钮登录时,我登录但没有注册用户名。所以无论我做什么,日志用户名都不显示,即没有用户名。

我按照以下链接进行配置: useraccounts link to 3rd party login

我在 lib / config.js

中有以下内容
Carries out the command specified by string but remains

以下修改电子邮件/密码登录

ServiceConfiguration.configurations.update(
      { "service": "facebook" },
      {
        $set: {
          "appId": "XXXXXXXXXXXXXXX",
          "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
        }
      },
      { upsert: true }
    );

我可能错过了很多,但我没有看到有关从第三方登录中提取用户名的任何讨论。有谁知道如何进一步配置?例如,如果Facebook或Twitter用户名是ABC,我希望ABC在第三方社交登录时在应用程序中反映为用户名。

更新

var pwd = 
AccountsTemplates.removeField('password');
AccountsTemplates.removeField('email');
AccountsTemplates.addFields([
  {
    _id: "username",
    type: "text",
    required: true,
    displayName: "username",
    minLength: 5,
    errStr: 'error.minChar'
  },

1 个答案:

答案 0 :(得分:2)

您可以在创建用户时注册服务器端挂钩,并强制用户名为您想要的任何内容,包括来自第三方服务的用户名。

https://docs.meteor.com/#/full/accounts_oncreateuser

cause

但请注意,这不会强制实施用户名唯一性,因为Facebook上的2个人显然可以共享相同的名称,因此如果您的应用中存在问题,则必须自行解决。