Cookie上的Stormpath OAuth访问令牌

时间:2016-08-03 20:15:24

标签: java cookies oauth stormpath

我正在努力通过Stormpath将OAuth 2.0令牌管理集成到我的应用程序中。目前我通过构建一个cookie来存储cookie中的访问令牌:

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

并将其附加到我的回复中:

response.addCookie(buildAuthCookie(ogar));

我唯一需要从OAuthGrantAuthenticationResult附加到cookie的访问令牌,还是我需要添加其他东西?我一直在阅读的文档(http://docs.stormpath.com/guides/token-management/)似乎也让客户端传递了令牌类型,但是我需要在cookie中传递给客户端吗?

1 个答案:

答案 0 :(得分:0)

Stormpath API的结果确实提供了token_type属性,定义为Bearer,因为它是OAuth端点的预期默认值。我们的想法是通知客户端如何使用令牌来验证未来的请求,默认策略是作为HTTP头Authorization: Bearer <token>,其中<token>是您从{{1}获得的压缩令牌字符串}}

但是在您的情况下,您将把它存储在Cookie中,浏览器会将其发送回getAccessTokenString()标题,简单明了:)所以不需要客户端了解有关令牌的其他信息。但是,您应该将cookie的到期时间设置为与令牌的到期时间相同,以便浏览器在令牌不再有效时自动清除令牌。

你也做了正确的事情,让它成为一个安全的,仅限http的cookie,不会被恶意JavaScript窃取,所以这种方法对我来说非常好。