2017-08-23 47 views
1

我是一個相當新的開發者。我沒有OAuth2的經驗,每次我嘗試閱讀它的解釋,我似乎無法弄清楚它在實際意義上的含義。用Python進行用戶認證如何在Google Sheets API中工作?

這是我正在努力完成的。我正在用Python編寫一個應用程序,我希望能夠閱讀任意的Google工作表並處理數據。我遵循Google官方指南here並設置了quickstart.py示例。它工作正常,我已經能夠擴展它來做其他事情沒有任何問題 - 保持在快速入門指南中創建的特定文件設置。

現在,這裏是我困惑的地方。假設我希望其他人能夠使用他們自己的電子表格和Google帳戶使用我的應用程序。應用程序無法運行所需的client_secret.json文件嗎?但是,是不是(它的名字顯然會暗示)應該保密?他們需要創建自己的憑據,對吧?但是,您是否需要client_secret.json文件才能首先創建憑據?這一切如何工作?

需要做些什麼才能讓某人能夠運行Python腳本並通過他們的賬戶通過他們的賬戶連接到電子表格?我個人只是不明白,除了我自己的Google帳戶和指南中介紹的設置之外,OAuth2應該如何應用於這種特殊情況。

也許這個問題似乎太廣泛了。如果是這樣,這裏是底線:我如何使用鏈接here上列出的Python快速入門示例,並使其成爲任何人都可以在計算機上運行該腳本並使其工作? (引導他們通過所有需要的設置,如任何需要訪問其Google帳戶的普通應用程序)

回答

1

也許一些混淆源於client_secret中的「客戶端」一詞。客戶是你的應用程序。是的,只要有client_secret的人都可以模擬你的應用,它的細節應該保密。除了令人討厭之外,這種模仿的影響很小,因爲它不會延伸到Eve能夠訪問Alice的數據。

您的應用的每個用戶都需要通過OAuth舞蹈才能讓應用訪問其數據。此權限表現在刷新令牌和訪問令牌中,並且每個用戶都需要保持私有狀態。

如果您確實分發了client_secret,請考慮使用犧牲品(即假的)Google帳戶。這樣,任何濫用行爲都不會影響您的主要Google帳戶。

另一種可以考慮的方法是向用戶提供有關如何在開發控制檯上註冊他們自己的應用程序的說明,從而生成自己的client_secret。

+0

所以我應該在提交git時包含'client_secret'文件還是不安全?如果'client secret'的內容剛剛複製到python腳本中的一個變量中,並在將腳本編譯爲可執行文件之前從那裏使用,那麼這會不是個好主意? –

+0

我想這取決於你的git回購是如何公開的。作爲一個經驗法則,不應該犯下祕密,但根據您的使用情況它可能有意義。我已經更新了我的答案,並考慮了另一個選項。 – pinoyyid

相關問題