gpt4 book ai didi

javascript - Google Oauth 回调后 Safari 无法获取 Uri 片段

转载 作者:行者123 更新时间:2023-12-01 06:08:59 26 4
gpt4 key购买 nike

我正在按照本文档实现 Google OAuth 2.0:https://developers.google.com/identity/protocols/OAuth2UserAgent

我设置了以下步骤:

  • 用户单击登录按钮并打开一个新窗口。
  • 格式化身份验证 URL 并将新窗口重定向到 Google。
  • 用户完成身份验证登录,Google 将 access_token 重定向到我的回调
  • 回调页面使用#(例如:https://oauth2-login-demo.appspot.com/oauthcallback#access_token=1/fFBGRNJru1FQd44AzqT3Zg&token_type=Bearer&expires_in=3600&nonce=DgkRrHXmyu3KLd0KDdfq)
  • 验证 URI 片段中返回的 access_token

    我的问题是,对于 Chrome 和 Firefox,它工作得很好。但是,桌面 Safari(9.0.1) 和移动 Safari(iOS 9.2) 都无法接收任何哈希参数: Safari Console

    是我执行了错误的 OAuth 步骤吗?

    我的部分代码:
  • 第1步
    let that = this;
    let oauthWindow = window.open("", "oauthWindow", "height=518,width=964");

    that.setState(Object.assign({}, that.state, {loaded: false}));

    Parse.Cloud.run("google_util_request_login").then(function(result) {

    console.log(decodeURIComponent(result));

    oauthWindow.location = decodeURIComponent(result);

    }, function (error) {
    that.setState(Object.assign({}, that.state, {errorMessage: error, loaded: false}));
    });
  • 第 2 步:google_util_request_login 是一个云函数,它将返回格式化 url。
  • Github 仓库: github.com/bblurock/parse-cloud-with-google-twitter-oauth/blob/master/index.js#L22-L40
    (给您带来不便敬请谅解,我的名气不够发两个以上的链接)
  • 最佳答案

    Safari(与 Firefox 和 Chrome 不同)可能会删除 #...当服务器重定向到另一个 URI 时从一个 URI。

    在我的情况下,我使用的是 redirect_uri http://localhost:8080/auth-callback.html/我的本地服务器重定向到 http://localhost:8080/files/auth-callback.html/ .

    在您的示例中,您提到了 redirect_urihttps://oauth2-login-demo.appspot.com/oauthcallback .当我转到该 uri 时,我不会被重定向到其他任何地方,因此这在您的特定情况下可能没有用,但如果该页面有更明确的路径,那么也许可以尝试一下。

    抱歉,如果这不能解决您的问题,但我相信它会帮助处于类似情况的其他人。

    关于javascript - Google Oauth 回调后 Safari 无法获取 Uri 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34528154/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com