0

我正在将我的 chrome 扩展程序移植到 Safari。该扩展程序需要用户登录,我使用 OAuth 代码流,它需要重定向 url。

在 Chrome 中,我可以将chrome.runtime.getURL('/mypage.html')其用作重定向 url,因为在 chrome 中,扩展 ID 永远不会更改。

然而,在 Safari 中,扩展 ID 在每个 (xcode) 构建中都会不断变化。这类似于 Firefox 的行为,但在 Firefox 中,我可以使用browser.identity.getRedirectURL(). 虽然无法访问,但它保证保持不变。

就像在 Safari 中一样,没有browser.identity并且safari-web-extension://<extension-id>被 Safari 阻止,我可以使用什么 url 作为重定向 URL?

4

1 回答 1

0

请在苹果论坛查看我的回复: https ://developer.apple.com/forums/thread/670165?answerId=661186022#661186022

摘自我在 Apple 论坛上的回复:

作为一种解决方法,您可以使用任何可访问的 URL 作为 OAuth 重定向 URL,并使用 webRequest.onBeforeRedirect 来捕获重定向尝试和“强制重定向”,例如通过 tabs.update。

虽然这会起作用,但它远非优雅。它甚至可能容易出错。虽然 Firefox 为此提供了一个不错的解决方案,但为什么 safari 不能/不能。这可能是 Safari 错误或需要 Safari 上的更改请求。

我没有收到苹果的任何消息(像往常一样)。

于 2021-02-09T06:56:34.483 回答