[英]Meteor 1.3+ Accounts Facebook Login for iOS not working
它通過以下設置為我工作
與帳戶相關的流星包
accounts-base accounts-password accounts-facebook accounts-google useraccounts:materialize service-configuration accounts-ui splendido:accounts-meld
使用渲染模板
{{> atForm}}
我還添加了2個cordova插件(用於在.meteor
文件夾中創建一個名為cordova-plugins
和以下內容
cordova-plugin-meteor-webapp@https://github.com/meteor/cordova-plugin-meteor-webapp.git#8bf95eed3f313299fc2de33658866278eea2cdc5 cordova-plugin-inappbrowser@https://github.com/apache/cordova-plugin-inappbrowser.git#2df0e72c36f1fda35c04b3b06bd7beaafaae6ee9
還要確保在html的head標簽中有以下行
<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' 'unsafe-eval' data: " />
最后在mobile-config.js
文件中添加以下行
App.accessRule('http://*', {type: 'navigation'}); App.accessRule('https://*', {type: 'navigation'});
在構建之前還要運行meteor reset
命令
根據作者的說法 - iOS 10中的WKWebView似乎不再將Meteor Cordova CSP(default-src *)應用於websockets,並使用以下消息阻止連接。 當他們的用戶更新到iOS 10 (已經發布)時,這會破壞生成websocket連接的生產應用程序 (可能只有默認連接到Meteor服務器以外的連接?不確定 )。
問題在於代碼行
<meta http-equiv="Content-Security-Policy" content="default-src * data: blob: 'unsafe-inline' 'unsafe-eval';">
您可以嘗試替換它
<meta http-equiv="Content-Security-Policy" content="default-src * 'self' data: blob: 'unsafe-inline' 'unsafe-eval' wss://*.ourdomain.tld ">
然后通過運行meteor update boilerplate-generator
更新Meteor 1.4
您也可以嘗試更新meteor update --release 1.4.2-beta.4
如鏈接中所述
此包在構建過程中運行,並且在項目級別更新此包不會更改用於構建應用程序的文件。
如果它仍然無法工作,那么這位作者建議
你可以添加一個簡單的插件meteor add cordova:meteor-ios10-csp-fix@0.1.0
希望這可以幫助。
完全歸屬於github鏈接和上面提到的作者
為了讓我能夠工作,我升級到最新版本的meteor,accounts-facebook等。
接下來,我使用Facebook登錄部署了該應用程序的Web版本。 然后我測試了web app facebook登錄。 一旦在您的Facebook應用設置中添加了有效的oauth重定向URI,一切都很好。 這些應該類似於https://example.com
然后我運行終端meteor run ios-device --settings settings.json --mobile-server https://example.com
我的mobile-config.js文件也包含@Afzal Hossain App.accessRule('http://*', {type: 'navigation'}); App.accessRule('https://*', {type: 'navigation'});
App.accessRule('http://*', {type: 'navigation'}); App.accessRule('https://*', {type: 'navigation'});
我的設備上的應用程序用於登錄。
不再需要cordova插件或CSP策略,因為流星更新使這些不必要。
我通過在Facebook App的“有效OAuth重定向URI”中指定正確的Url來解決相同的問題。
早些時候,我已經指定了http://<domainname>/_oauth/facebook?close
這沒用。 經過一些調試,我發現URL應該是
http://<domainname>:<port>/_oauth/facebook?close
(帶端口號)
因此,如果服務器在http://localhost:3000
,它將是http://<device ip/external ip>:3000/_oauth/facebook?close
並且,如果您使用--server = http://www.domainname.com運行應用程序,那么它將是http://www.domainname:80/_oauth/facebook?close
(HTTP端口80)
現在,我看到了Facebook App登錄頁面,可以登錄。
但是現在我很難在身份驗證后關閉InAppBrowser。 在這方面的任何幫助都會很棒!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.