【问题标题】:Cordova / Ionic Callback to file:// giving permission denied errors in xcodeCordova / Ionic Callback to file:// 在 xcode 中授予权限被拒绝错误
【发布时间】:2017-03-21 20:05:11
【问题描述】:

我有一个 Ionic 应用程序,它使用 ng_token_auth 和 devise_token_auth 使用 facebook 向我的 rails api 进行身份验证。

项目在使用 ionic serve 执行时运行良好,但是在尝试模拟或从 xcode 运行时,回调失败并出现“权限被拒绝”错误。

我已将其范围缩小到 ios 中的回调 uri 本质上是 file:// 而不是网址。

如何摆脱这种权限违规?我已经尝试在所有键中使用通配符的 cordova-plugin-whitelist 但仍然无法正常工作。

有人有线索吗?快把我逼疯了。

编辑:我的索引文件中有这个:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' file: 'unsafe-inline' data: gap: https://ssl.gstatic.com https://cdn.pubnub.com https://pubnub.github.io https://maps.googleapis.com https://js.maxmind.com https://csi.gstatic.com https://ssl.gstatic.com * 'unsafe-eval'; style-src 'self' file: 'unsafe-inline'; media-src *">

这些暂时在我的 config.xml 中

<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" />

我看到来自 api 的响应

Redirected to file://?auth_token=2NYS8SaPIhydxxuA39IbSA&blank=true&client_id=Qc7GuZ3s6d344L2LkWfuPQ&config=&expiry=1491307425&uid=10152938160630709

然后Xcode中的错误为:

webView:didFailLoadWithError - -1102: You do not have permission to access the requested resource.

干杯

【问题讨论】:

    标签: cordova ionic-framework callback rails-api


    【解决方案1】:

    您需要将Content Security Policy 元标记添加到您的index.html 以允许file:// 协议。

    从 iOS 10 开始,UIWebView(Cordova 在 iOS 上使用的默认 Webview)尊重 CSP 标签,并且比 Android 更严格地执行它。

    您还需要添加gap:// 协议,否则deviceready 事件将不会触发。

    试试这样的 CSP:

    <meta http-equiv="Content-Security-Policy" content="default-src 'self' file: data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
    

    【讨论】:

    • 感谢@DaveAlden,但仍然无法正常工作。我现在有以下但仍然得到相同的权限错误: ssl.gstatic.com cdn.pubnub.com pubnub.github.io maps.googleapis.com js.maxmind.com csi.gstatic.com ssl.gstatic.com * 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
    • 哈,刚刚注意到我错过了示例 CSP 中的 file: 协议,这是您真正需要的协议!对于那个很抱歉!我刚刚编辑了我的答案以添加它 - 尝试在 'self' 之后将 file: 添加到您的默认规则中
    • 再次感谢@DaveAlden,但仍然无法正常工作,我已经用更多信息和上面的 sn-p 编辑了我的原始问题。还有更多线索吗?
    猜你喜欢
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2011-08-28
    • 2019-03-10
    • 2018-04-04
    • 2021-10-18
    相关资源
    最近更新 更多