gpt4 book ai didi

meteor - 如何将外部服务登录添加到 Meteor 中已经存在的帐户?

转载 作者:行者123 更新时间:2023-12-04 06:41:03 25 4
gpt4 key购买 nike

为我的应用程序创建了个人资料页面后,我想显示用户所在的社交服务列表。令我震惊的是,最简单的方法是为此使用 Meteor 的内置帐户系统。

有没有向现有帐户添加外部服务的好方法?

此外,用户是否能够使用(例如)Facebook 登录?和 他的密码来自我的应用程序?

另一个自然而然的问题是:有没有一种好方法可以将特定于应用程序的密码添加到使用外部服务创建的帐户中?

最佳答案

这是另一种方法。在这个解决方案中,我重写了一个核心函数并添加了一些自定义行为。我的目标是将服务数据与当前登录的用户相关联,然后让核心功能像往常一样做它的事情。

orig_updateOrCreateUserFromExternalService = Accounts.updateOrCreateUserFromExternalService;
Accounts.updateOrCreateUserFromExternalService = function(serviceName, serviceData, options) {
var loggedInUser = Meteor.user();
if(loggedInUser && typeof(loggedInUser.services[serviceName]) === "undefined") {
var setAttr = {};
setAttr["services." + serviceName] = serviceData;
Meteor.users.update(loggedInUser._id, {$set: setAttr});
}
return orig_updateOrCreateUserFromExternalService.apply(this, arguments);
}

优点:
  • 避免创建不必要的帐户
  • 代码简短易懂
  • 如果将此功能添加到 Meteor 核心
  • ,则代码很容易删除

    缺点:
  • 要求用户登录。如果用户最初使用 twitter 登录,然后注销,然后使用 facebook 登录,则将创建两个单独的帐户。
  • 共享计算机的用户可能会无意中合并他们的帐户。
  • 依赖于 updateOrCreateUserFromExternalService 如何工作的知识。这并不可怕——因为它是 Meteor 的公共(public) api 的一部分,它可能不会发生巨大的变化(反正不会经常发生)。但这仍然是有风险的。
  • 关于meteor - 如何将外部服务登录添加到 Meteor 中已经存在的帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15592965/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com