嘗試對 Google Web 應用程式使用 Google 聯合身份驗證登錄按鈕時,錯誤訊息識別出與相關 URI 和 javascript 主機域不匹配。解決方案,如這篇 2019 年的帖子(使用 Google Apps 腳本獲取 gmail 地址,錯誤:redirect_uri_mismatch)對我不起作用。
然后我找到了這篇最近的文章:由 Google Script 提供支持的 webapp 的授權 Javascript 起源是什么?
我的理解是,由于谷歌最近的行動,谷歌網路應用程式不再可能使用谷歌身份驗證器,因為重定向 URI 和 javascript 源主機域“不能是googleusercontent.com ”,它是谷歌網路應用程式。
因此,我的問題與之前的帖子(即 2019 年)重復,但在新情況下。我最近參考的那篇文章的結論對我來說似乎太激進了,以至于我正在尋求確認,或者解釋我是如何誤解它的。
作為背景:我需要 webapp 在“(我)所有者”帳戶下操作以連接到所有者電子表格,但還需要用戶的 Gmail 地址(必需)用于應用程式訪問控制(沒有其他訪問用戶 Gmail 帳戶的權限;用戶不是所有在共享作業區域中)。Google 登錄將提供用戶 Gmail 地址。所以,在完全放棄這個解決方案之前,我希望得到更多的澄清。
uj5u.com熱心網友回復:
根據官方檔案,無法對網站使用 Google 登錄,并且來自 Google Apps 腳本問題跟蹤器的這篇文章Fail to Add *.googleusercontent.com into Authorized JavaScript origins as Google Apps Script uses googleusercontent.com
為了實作您的目標,正如我在上一個問題中提到的,您可以使用 UrlFeth 服務呼叫 Google Sheets API 來連接您的電子表格并將網路應用程式設定為用戶而不是您。
來自https://developers.google.com/identity/protocols/oauth2/web-server#uri-validation
| 領域 | 主機 TLD(頂級域)必須屬于公共后綴串列。 |
| 主機域不能是“googleusercontent.com”。 | |
| 除非應用擁有該域,否則重定向 URI 不能包含 URL 縮短域(例如 goo.gl)。此外,如果擁有縮短域的應用程式選擇重定向到該域,則該重定向 URI 必須在其路徑中包含“/google-callback/”或以“/google-callback”結尾。 |
有關的
- 如何正確配置 GAS Web 應用程式(作為另一個用戶)以使用 OAuth2 執行 GAS API 可執行檔案(作為我)?
- GAS 以用戶身份運行時的用戶訪問請求
uj5u.com熱心網友回復:
雖然您不能再添加googleusercontent.com,但您可以通過使用兩個 webapps 并管理兩者之間的身份驗證/授權來解決這個問題:
網路應用#1:
- 運行身份:我
- 訪問:任何人,甚至匿名
網路應用#2:
- 運行身份:用戶
- 訪問:任何人
您可以從 webapp#2 創建一個 jwt 令牌并在 webapp#1 上驗證它。由于它是自定義解決方案,因此安全性可能存在問題。
參考:
- 使用服務器進行身份驗證- 這里,webapp#1 充當服務器,webapp#2 充當客戶端。
- ScriptApp.getIdentityToken()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/436569.html
