我想使用Parse和Facebook将用户签入我的React-Native应用程序,但似乎Facebook JS SDK依赖于dom。我如何使用Facebook登录用户?React Native和Parse.FacebookUtils
我目前使用https://github.com/magus/react-native-facebook-login本地登录用户,所以我有权访问他们的auth令牌等。但是不能使用没有FB JS SDK的Parse.FacebookUtils.login()。
我想使用Parse和Facebook将用户签入我的React-Native应用程序,但似乎Facebook JS SDK依赖于dom。我如何使用Facebook登录用户?React Native和Parse.FacebookUtils
我目前使用https://github.com/magus/react-native-facebook-login本地登录用户,所以我有权访问他们的auth令牌等。但是不能使用没有FB JS SDK的Parse.FacebookUtils.login()。
如果你从本地FB SDK您的authData,您可以绕过FacebookUtils.init()调用完全。这应该登录到分析用户与FB:
Parse.User._logInWith('facebook', {
authData: {
id: FB_USER_ID,
access_token: USER_ACCESS_TOKEN,
expiration_date: TOKEN_EXPIRATION_DATE
}
});
这会返回一个承诺,同Parse.FacebookUtils.logIn()
我设法通过解析Parse SDK Parse.FacebookUtils.logIn流中对FB的引用并删除安全检查来解决此问题。如果您已经拥有authData对象,则FB SDK实际上不需要使用Parse来验证用户。
显然不是一个理想的解决方案,所以离开这个开放
Parse.FacebookUtils.logIn
其实并不依赖于FB JS SDK,所以你可以直接调用它(只要你通过authData
对象)。
如果对其他人有帮助,我会遇到连接和解除Parse帐户与Facebook帐户关联的困难。例如,unlink
方法依赖于FB JS SDK。我工作围绕这个由1没有要求Parse.FacebookUtils.init
,2.创建一个“假Facebook的提供者”:
var FakeFacebookProvider = {
getAuthType: function() {
return 'facebook';
},
restoreAuthentication: function() {
return true;
},
};
和3通过这个中Parse.User._isLinked
和Parse.User._unlinkFrom
:
if (user._isLinked(FakeFacebookProvider)) {
user._unlinkFrom(FakeFacebookProvider, {
到目前为止,这是运作良好。这可能会达到与Tarrence的答案相同的效果,而无需编辑Parse代码。
我们确实需要一个不依赖FB JS SDK的Parse.FacebookUtils
的React Native兼容版本!
看来这段代码路径仍然需要FB JS SDK存在 – Tarrence 2015-04-06 00:02:27
这是不调用'Parse.FacebookUtils.init ()'?如果身份验证提供程序从未注册过Parse SDK – 2015-04-06 01:51:53
,那么所有对“FB”的引用都是可以避免的,你是对的。我仍然在调用init() – Tarrence 2015-04-06 02:00:12