访问使用社会注册创建的用户文档

Access user doc created with social sign up

本文关键字:创建 用户文档 注册 社会 访问      更新时间:2023-09-26

我有两种不同的方式让用户注册到网站。一种是简单注册另一种是推荐注册其中路由中有一个令牌与推荐者的userId相关例如:

Router.route('referral-signup', { path: '/referral-signup/:userId'});

在这个推荐路由中,我使用Meteor方法调用在推荐表中创建一个文档,结构如下:{refereeId: String, referrerId: String, verified: false},其中包含推荐人和推荐人的所有相关信息,以及推荐人的电子邮件是否已被验证。

两个注册流程都允许用户使用Twitter或Facebook(常规注册&推荐注册)。问题是,用户注册这些社交平台的Meteor方法是这样的:

Meteor.loginWithTwitter({}, function(error) {
    if (error) {
        throw new Meteor.Error("Twitter login failed.");
    } else {
        Router.go('home');
        return;
    }
});  

在这个函数回调中,我似乎无法访问已创建的用户,因此无法使meteor方法调用来创建推荐文档,如果用户被引用然后通过社交平台注册,这是一个问题。有人对如何在社交注册回调中访问用户有任何想法吗?

在类似的情况下,我采用的方法是在调用引用路由时(在路由代码本身中)将引用令牌放入会话变量中。当创建用户时,我使用会话变量来设置引用者信息,然后清除它。这也有助于新访问者在实际注册之前在网站上闲逛一段时间。