我正在尝试找到一种好的方法来存储我的应用程序中用户的唯一ID。我正在使用Facebook登录进行用户管理,并为用户创建了一个类:
function FacebookUser(userObj) {
if (userObj) {
this.name = userObj.name;
this.id = userObj.id;
this.picture = userObj.picture.data.url;
this.isLoggedIn = true;
} else {
this.name = 'Login';
this.id = 0;
this.picture = '';
this.isLoggedIn = false;
}
}
基本上,我有一个 Angular 服务,用于处理 Facebook 登录:
.service('facebookService', function () {
this.getFacebookUser = function (callback) {
$.getScript("//connect.facebook.net/en_US/sdk.js", function () {
var appId = "12312312313123";
FB.init({
appId: appId,
status: true,
cookie: true,
xfbml: true,
version: 'v2.4'
});
FB.getLoginStatus(function (response) {
if (response.status == 'connected') {
FB.api('/me?fields=picture,name,email', function (data) {
callback(new FacebookUser(data));
})
} else {
FB.login(function (response) {
FB.api('/me?fields=picture,name,email', function (data) {
callback(new FacebookUser(data));
})
});
}
})
});
}
})
我想弄清楚的是唯一标识符是什么。我想使用用户的电子邮件地址作为唯一标识符,因为它保证是唯一的,但不想请求额外的权限。最初,我想使用id字段,但我不确定id是否会更改。在Facebook文档中,他们将id字段解释如下:此人用户帐户的ID。该ID对每个应用程序都是唯一的,不能在不同的应用程序之间使用。我们的升级指南提供了有关特定于应用程序的ID的更多信息。
根据这个,ID对应用程序是唯一的,不能在不同的应用程序之间使用。然而,我在这里想要更加明确一些。如果一个用户今天登录应用程序,然后几个月后再次登录,他们的ID是否相同(如果是同一应用程序)还是会更改?第二个问题是,如果/当我做出更改并获得新的应用程序ID时,ID是否相同或更改?从技术上讲,它仍然是同一个应用程序,只是不同的版本。我的假设是,由于它是不同的appId,Facebook认为它是完全不同的应用程序,但我是Facebook API的新手,正在寻求专家的建议。