我正在登录系统http://quickblox.com/ ,
我有这个代码利用社会进行身份验证,特(Twitter这种情况下)。
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
试着先登录,然后在登录的情况下,如果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
}
});
}
});
因此很明显的问题是如何保持用户的OAuth令牌当他们与你的服务中使用该网站尚未注册,但已经和授权与Twitter您的应用程序。
总之 - 这取决于你的服务做什么。
你可以让他们在JavaScript当前页面的上下文 - 它们将被销毁用户关闭该选项卡。
或者你可以将它们保存在饼干所以当用户回来,他们将可用。
或者你可以在数据库中创建“虚拟”的用户,并保存该用户的cookie ID。
或者你可以自动从Twitter查询的数据注册用户和登录用户在Twitter上的验证操作英寸
无论如何,当用户最终注册,只是这些值复制到相应的字段在数据库中。