簡體   English   中英

Gmail API:從彈出的 URL 中提取“code”參數 Z05B8C74CBD96FBF2DEZ4C1A 獲取訪問詳細信息

[英]Gmail API : Extract "code" param from the URL of a pop-up window to get the access_token details

我正在嘗試對我的 web 應用程序使用 OAuth2 對 gmail 進行身份驗證。 我們從服務器返回一個 url 給客戶端,然后客戶端使用它打開一個彈出窗口。 代碼如圖所示:

        var win = window.open(data.google_oauth_url, `<h1>Gmail</h1>`, 'width=800, height=600');
          var pollTimer = setInterval(() => { 
              try {
                  const searchParams = new URL(win.document.URL).searchParams
                  console.log("url is",win.document.URL, searchParams, searchParams.get("code"))
                  if (searchParams.get("code") != -1) {
                      clearInterval(pollTimer);
                      win.close();
                  }
              } catch(e) {
                console.log("Error",e)
              }
          }, 500);

從彈出窗口中,我想提取身份驗證完成后谷歌返回給我們的“代碼”參數。 但是當我嘗試從客戶端提取參數時,我面臨一個錯誤:

未捕獲的 DOMException:阻止具有源“https://xyz”的框架訪問跨域框架

是否有人知道此解決方案,或任何其他提取“代碼”參數的方法,以便我可以繼續獲取 access_token 詳細信息。 提前致謝。

上面的代碼有效,雖然我們在使用谷歌身份驗證時遇到 CORS 錯誤,但一旦身份驗證完成,它就會重定向到提供的 url(Web 應用程序)。 然后不再有跨域,因為域現在是相同的。

例如:https://localhost 是您的 web 應用程序 url 和重定向 Z572D4E4211E5E6B9BC1E21DZ。

然后它會檢測驗證碼,一旦獲得,彈出窗口會自動關閉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM