【问题标题】:Stormpath OAuth access token on cookiecookie 上的 Stormpath OAuth 访问令牌
【发布时间】:2016-08-04 08:59:29
【问题描述】:

我正在通过 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 中传递给客户端的东西吗?

【问题讨论】:

    标签: java cookies oauth stormpath


    【解决方案1】:

    Stormpath API 的结果确实提供了 token_type 属性,定义为 Bearer,因为这是 OAuth 端点的预期默认值。这个想法是通知客户端应该如何使用令牌来验证未来的请求,默认策略是作为 HTTP 标头Authorization: Bearer <token>,其中<token>是您从getAccessTokenString()获得的紧凑令牌字符串

    但是在您的情况下,您要将其存储在 cookie 中,浏览器会将其发送回 Cookie 标头中,这很好而且简单 :) 所以客户端无需了解更多关于令牌。但是你应该将cookie的过期时间设置为与token的过期时间相同,这样浏览器会在token失效时自动清除。

    您也做了正确的事,将其设为安全的、仅限 http 的 cookie,不会被恶意 JavaScript 窃取,所以这种方法对我来说看起来不错。

    【讨论】:

    • 感谢您的回复。我认为我在实施方面离基地不太远,但我想确认我在这里所做的事情是可靠的。
    • 很高兴能帮上忙!附:我在 Stormpath 工作,我们喜欢帮助集成,如果您有更多问题,请随时加入我们的 slack 频道:talkstormpath.slack.com
    猜你喜欢
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2018-02-17
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多