我想使用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