注册 oAuth 令牌 Quickblox 和 oAuth

Posted

技术标签:

【中文标题】注册 oAuth 令牌 Quickblox 和 oAuth【英文标题】:Sign UP oAuth Tokens Quickblox and oAuth 【发布时间】:2015-07-30 00:32:11 【问题描述】:

我正在使用http://quickblox.com/ 登录系统,

我有这段代码可以使用社交进行身份验证,(本例为推特)。

var params =  'provider': "twitter", 'keys[token]': "...", 'keys[secret]': "...";

QB.login(params, function(err, user)
  if (user) 
    // success
   else  
    // error
  
);

这个要注册

var params =  'login': "emporio", 'password': "somepass";

QB.users.create(params, function(err, user)
  if (user) 
    // success
   else  
    // error
  
);

如果他们还没有注册,我该如何注册?

http://quickblox.com/developers/Sample-users-javascript#Sign_In_using_Facebook.2FTwitter_access_token

【问题讨论】:

你的意思是在“如果他们还没有注册”的情况下在 Twitter 上注册?如果是这样,我想你不能...... 在我的数据库上注册如果他们不是我不明白它是如何工作的,在 twitter 成功认证后它返回 oauth 令牌和秘密。如何将用户存储在我的数据库中? 【参考方案1】:

如果用户不存在,尝试先登录,然后再登录ip

var params =  'login': "emporio", 'password': "somepass";
QB.login(params, function(err, user)
  if (user) 
    // success
   else  

    // error, user not registered yet
    QB.users.create(params, function(err, user)
      if (user) 
        // success

        QB.login(params, function(err, user)
          if (user) 
            // success
           else  
            // error
          
        );

       else  
        // error
      
    );
  
);

【讨论】:

【参考方案2】:

显然,问题是当用户的 OAuth 令牌尚未注册到您的服务但已经在使用该站点并已通过 Twitter 授权您的应用程序时,如何保留用户的 OAuth 令牌。

简而言之 - 这取决于您的服务是做什么的。

您可以在当前页面的上下文中将它们保留在 JavaScript 中 - 当用户关闭选项卡时它们将被销毁。

或者您可以将它们保存在 cookie 中,以便用户回来时可以使用它们。

或者您可以在您的数据库中创建“虚拟”用户并将该用户的 ID 保存在 cookie 中。

或者您可以使用从 Twitter 查询的数据自动注册用户,并在 Twitter 上发生身份验证时登录用户。

无论如何,当用户最终注册时,只需将这些值复制到数据库中的相应字段中即可。

【讨论】:

以上是关于注册 oAuth 令牌 Quickblox 和 oAuth的主要内容,如果未能解决你的问题,请参考以下文章

QuickBlox 用户注册问题 REST API

Google oAuth2 令牌越来越失效

用户在springboot中调用注册休息API时如何获取oAuth2访问令牌?

限制 quickblox 用户创建

eBay oauth 令牌和刷新令牌

AppAuth iOS。用户在我自己的OAuth2服务器中注册帐户后如何保存令牌信息