Java cookie上的Stormpath OAuth访问令牌

Java cookie上的Stormpath OAuth访问令牌,java,cookies,oauth,stormpath,Java,Cookies,Oauth,Stormpath,我正在通过Stormpath将OAuth 2.0令牌管理集成到我的应用程序中。目前,我正在通过如下方式构建cookie,将访问令牌存储在cookie中: public Cookie buildAuthCookie(OauthGrantAuthenticationResult ogar){ Cookie authCookie = new Cookie("authCookie", ogar.getAccessTokenString()); authCookie.setSecure(t

我正在通过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));
并将其附加到我的回复中,如下所示:

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的是访问令牌还是需要添加其他内容?我一直在阅读的文档()似乎让客户机也传递令牌类型,但这是我需要在cookie中传递给客户机的吗?

来自Stormpath API的结果确实提供了
token\u type
属性,定义为
Bearer
,因为这是OAuth端点的预期默认值。其思想是通知客户端如何使用令牌对未来的请求进行身份验证,默认策略是作为HTTP头
Authorization:Bearer
,其中
是从
getAccessTokenString()获取的紧凑令牌字符串

但在您的情况下,您将把它存储在cookie中,浏览器将以
cookie
头的形式将其发送回来,非常简单:),因此客户端无需了解更多关于令牌的其他信息。但是,您应该将cookie的过期时间设置为与令牌的过期时间相同,以便浏览器在令牌不再有效时自动清除该令牌


您也做了正确的事情,使其成为一个安全的、仅http的cookie,不会被恶意JavaScript窃取,因此这种方法在我看来相当不错。

感谢您的回复。我想我的实现离基础不会太远,但我想得到一些确认,我在这里所做的是可靠的。我很高兴我能帮上忙!P.S.我在工作,我们喜欢在集成方面提供帮助,如果您有更多问题,请随时加入我们的slack channel: