ServiceStack身份验证中的httponly ss-tok bearerToken cookie有什么意义

时间:2017-11-21 18:12:07

标签: typescript authentication cookies servicestack

从安全角度来看,我理解了一个用于Set-Cookie Response标头的值的httponly标志的概念,并防止了XSS攻击。

我不明白的是,什么是ServiceStack使用保存bearerToken的“ss-tok”cookie。

根据ServiceStack documentation我可以通过发布无状态JWT Cookie来转换为无状态会话:

var authResponse = client.Send(new Authenticate {
    provider = "credentials",
    UserName = username,
    Password = password,
    UseTokenCookie = true
});

UseTokenCookie设置为true。并且成功进行身份验证后会创建httponly“ss-tok”cookie。

然而,我似乎无法使用这个以“ss-tok”名称存储的令牌cookie。我无法使用Javascript检索它,我似乎无法在JsonServiceClient个请求中发送它。

enter image description here

我的ServiceStack资源微服务在任何安全请求中都不会收到“ss-tok”的值。我必须为任何安全请求明确设置bearerToken。

我必须使用ServiceStack documentation on this matter中所述的JsonServiceClient明确传递bearerToken或refreshToken。

我一定是做错了,I thought this documentation是我遗漏的部分,这段代码在这里:

var client = new JsonServiceClient(baseUrl);
client.SetCookie("ss-tok", jwtToken);

但是这段代码实际上没有意义,因为“ss-tok”的值没有被发送到我的资源微服务,我必须像我之前所说的那样显式设置bearerToken值:

var client = new JsonServiceClient(baseUrl);
client.bearerToken = jwtToken;

这意味着我必须将jwtToken存储在我自己的cookie值中,因为我的应用程序需要在应用程序的不同区域创建多个JsonServiceClient实例。

1 个答案:

答案 0 :(得分:1)

Cookie是持有JWT令牌的does get sent on subsequent requests与任何其他Cookie一样。