簡體   English   中英

我可以在前端使用后端的OAuth令牌嗎?

[英]Can I use an OAuth token from backend in my frontend?

我只是通過Java( 源代碼 )對Google的DrEdit示例應用程序進行了介紹。 它顯示了如何編寫一個簡單的雲端硬盤應用以及如何在后端處理授權。

這是一個很好的例子,但我注意到的最大缺點是,當用戶想要從自己的雲端硬盤中選擇文件時,需要用戶再次登錄(盡管之前已授權該應用執行此操作)。 這很不方便,所以我想避免這種情況。 使用僅在Javascript中可用的Google Picker API完成選擇文件。

因此,我想在后端和前端之間共享授權信息-我可以僅將后端中擁有的OAuth令牌傳遞給前端嗎? 如果是這樣,是否有推薦的方法?

是的,完全可以。 @tydotg描述的在客戶端進行監聽實際上不是問題,因為訪問令牌是可監聽的,而不管它是在客戶端還是在服務器上生成的。

唯一真正的挑戰是確保僅將令牌下載到正確身份驗證的用戶。 您可以使用多種方案來執行此操作,例如:

  1. 用戶使用基於服務器的OAuth對您的應用進行身份驗證。
  2. 服務器將用戶ID或電子郵件存儲在會話變量中
  3. 當客戶端請求令牌時,您可以使用會話用戶來生成令牌

使用交叉身份可實現以下目的:

https://developers.google.com/accounts/docs/CrossClientAuth

我敢肯定您可以(我不太熟悉Java,但是在Rails中,這很容易),但是您不想這樣做的原因是出於安全性。

服務器端的任何內容都是相當安全的,客戶端無法訪問。 但是,客戶端的任何事情都是公平的游戲。 我可以檢查該元素,如果我知道要查找的內容,則可以獲取OAuth令牌。

暫無
暫無

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

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