2016-08-03 91 views
2

我正在通過Stormpath將OAuth 2.0令牌管理集成到我的應用程序中。Cookie上的Stormpath OAuth訪問令牌

public Cookie buildAuthCookie(OauthGrantAuthenticationResult ogar){ 
    Cookie authCookie = new Cookie("authCookie", ogar.getAccessTokenString()); 
    authCookie.setSecure(true); 
    authCookie.setHttpOnly(true); 
    return authCookie; 
} 

並將其連接到我的反應像這樣:

response.addCookie(buildAuthCookie(ogar)); 

是我需要重視的唯一的事情目前我正在通過建立像這樣一個cookie存儲在cookie的訪問令牌來自OAuthGrantAuthenticationResult的訪問令牌的cookie還是還有其他我需要添加的內容?我一直在閱讀的文檔(http://docs.stormpath.com/guides/token-management/)似乎也讓客戶端傳遞了令牌類型,但這是我需要通過cookie傳遞給客戶端的東西嗎?

回答

0

Stormpath API的結果確實提供了token_type屬性,定義爲Bearer,因爲這是OAuth端點的預期默認值。這樣做是爲了告訴客戶如何令牌應當用於驗證未來的請求,默認策略是作爲一個HTTP頭Authorization: Bearer <token>,其中<token>是您從getAccessTokenString()

但在你的情況你」得到了緊湊的令牌字符串重新將它存儲在一個cookie中,然後瀏覽器將它發回Cookie頭部,很好,很簡單:)因此客戶端不需要知道有關令牌的更多信息。但是,您應該將Cookie的到期時間設置爲與令牌的到期時間相同,以便瀏覽器在令牌不再有效時自動清除。

你也做了正確的事情,把它變成一個安全的,只有http的cookie,不能被惡意JavaScript竊取,所以這種方法對我來說很不錯。

+0

感謝您的回覆。我想我不能離開基地太遠,但我想得到一些證實,我在這裏做的是堅實的。 – tinker

+0

我很高興能幫到你!附:我在[Stormpath](https://stormpath.com)工作,我們喜歡幫助整合,如果您有更多問題,請隨時加入我們的閒暇頻道:https://talkstormpath.slack.com – robertjd

+0

更正的鏈接:https://talkstormpath.shipit.xyz =] –