2016-01-06 131 views
4

我計劃在AngularJS上使用Spring RESTful API後端和客戶端創建應用程序。使用Google OAuth2授權服務器的安全Spring RESTful API

我想使用Google OAuth2授權服務器來保護我的Spring RESTful API。

我有一個建築問題:

在谷歌成功授權後,我會從谷歌的OAuth2授權服務器接收的accessToken。我是否需要將此accessToken轉移到我的客戶端應用程序(AngularJS),或者我需要在後端應用程序(例如JWT)中引入一些自己的安全層,並基於Google accessToken發出自己的jwtToken,並僅將此令牌傳輸到我的客戶端應用?

換句話說 - 從Google向我的客戶端AngularJS應用程序顯示accessToken並將其用於我自己的RESTful API中的身份驗證安全嗎?

此外,在我的RESTful API的情況下,每次從我的客戶端應用程序(AngularJS)調用我的安全RESTful API後,是否需要使用Google Auth服務器驗證Google accessToken?

+0

什麼是應用程序的目的是什麼?你需要訪問Google API嗎?如果我沒有錯,Google Oauth令牌有限制(每個用戶有25個刷新令牌) – Valijon

+0

是的,它必須訪問Google API。 – alexanoid

+0

我明白了。每個用戶將提供憑證?如果是,您需要使用指定的憑證進行身份驗證並堅持在您的應用程序中(請求限制的原因)。但是,也存在令牌限制[https://developers.google.com/identity/protocols/OAuth2#expiration](https://developers.google.com/identity/protocols/OAuth2#expiration) – Valijon

回答

3

從Google向我的客戶端AngularJS應用程序顯示accessToken並將其用於我自己的RESTful API中的身份驗證安全嗎?

這實際上不是您的訪問令牌,它是爲您的客戶使用的。向它們提供令牌是完全安全的,因爲它們必須將令牌發送到每個請求的後端。這是因爲REST的本質。

對於我的RESTful API,是否需要在每次從我的客戶端應用程序(AngularJS)調用我的安全RESTful API之後,使用Google Auth服務器驗證Google accessToken?

是的,您必須在您的客戶端向您的後端發送令牌時致電Google。令牌可以失效有幾個原因。例如,用戶可以撤消你的應用程序的訪問,只是到期的令牌等

More reading on implementing a REST backend with Google OAuth 2