我正在开发一个 Chrome 扩展,它使用
chrome.identity.getAuthtoken
API - 来处理 Google OAuth 2.0 身份验证。
在 Chrome 浏览器中运行正常。
但是,Microsoft Edge 浏览器不支持此 API(链接此处)。因此,根据多个论坛中的建议,我尝试使用
chrome.identity.launchWebAuthFlow
API 来处理 Microsoft Edge 的 Google OAuth 2.0 身份验证。
但是
chrome.identity.launchWebAuthFlow
API 无法正常工作并且正在返回
Error 400: redirect_uri_mismatch
我在 Edge 或其他基于 Chromium 的浏览器上找不到任何解释此行为的文档或讨论。 我的问题-
Q1。使用
Chrome.identity.launchWebAuthFlow
时,Google Cloud Console 是否需要进行特定配置才能支持其他基于 Chromium 的浏览器(例如 Edge)?
Q2。 Edge 是否以不同的方式处理 chrome.identity.launchWebAuthFlow,导致其拒绝redirect_uri?
除 Chrome 之外,基于 Chromium 的浏览器是否有针对此问题的任何已知限制或解决方法?
Google OAuth 要求身份验证请求中使用的
redirect_uri
必须
与您的 Google Cloud Console 项目中指定的授权重定向 URI 之一完全匹配。
使用
chrome.identity.launchWebAuthFlow
时,redirect_uri
通常为:
https://<extension-id>.chromiumapp.org/
在 Edge 中,
extension-id
可能保持不变,但您仍然需要在 Google Cloud Console OAuth 2.0 客户端 ID 配置中显式添加特定于 Edge 的重定向 URI。
希望这会成功:
https://<extension-id>.chromiumapp.org/