我已經找到了大量關于使用用戶授權步驟實現Oauth2的信息,但是我正在嘗試運行一個容器,該容器會自動抓取gmail收件箱以獲取附件,并將其導出到prometheus,并且我很難弄清楚如何實現此庫:https://pkg.go.dev/golang.org/x/oauth2/clientcredentials#Config 或任何其他內容來檢索令牌而無需手動用戶步驟。在 Go 中執行此操作是否需要編寫直接 API 調用,因為我找不到現有庫來處理此方案?創建谷歌應用密碼并使用通用用戶/通過SMTP身份驗證更有意義嗎?
1 回答

眼眸繁星
TA貢獻1873條經驗 獲得超9個贊
首先,我明白你想做什么。
您有一個在容器中運行的后端系統,該系統將訪問單個gmail帳戶并處理電子郵件。
現在,您需要了解正在使用的 API 的限制。
有兩種類型的授權用于訪問私人用戶數據
服務帳戶 - 服務器到服務器的交互僅適用于工作區域。無需授權彈出窗口。
Oauth2 - 授權普通用戶的gmail帳戶,需要用戶交互才能授權同意屏幕
如果您沒有工作區帳戶,并且這是一個普通的gmail用戶,那么您別無選擇,必須使用Oauth2,這將要求用戶至少授權一次應用程序。
使用 Oauth2,您可以請求脫機訪問并接收刷新令牌,您可以隨時使用它來請求新的訪問令牌。問題是,您的應用程序將需要投入生產并進行驗證,因為您的刷新令牌只能工作七天,然后它將過期。若要解決此問題并獲取未過期的刷新令牌,意味著應用程序必須在生產中并經過驗證。這意味著您需要使用受限的gmail范圍進行Google的驗證過程,這需要第三方安全檢查,并且費用在15k - 75k之間,具體取決于您的應用程序。
我知道這是一個單用戶系統,但這并不意味著你仍然需要通過驗證。當Google添加應用程序驗證的需求時,他們沒有考慮像您這樣的單用戶系統。
選擇
您是否考慮過直接通過SMPT服務器而不是使用Gmail API?如果您使用應用程序密碼,則應通過使用登錄名和應用程序密碼登錄來繞過所有內容。
- 1 回答
- 0 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消