servicestack,jwt,Session,Authentication,servicestack,Jwt" /> servicestack,jwt,Session,Authentication,servicestack,Jwt" />

Session ServiceStack Jwt身份验证检查是否经过身份验证

Session ServiceStack Jwt身份验证检查是否经过身份验证,session,authentication,servicestack,jwt,Session,Authentication,servicestack,Jwt,我需要允许匿名访问端点,但仍要检查用户是否经过身份验证,然后提供一些额外的数据 使用我可以使用的[Authenticate]属性 var session = SessionAs<AuthUserSession>(); var session=SessionAs(); 然后session.i被验证 它工作正常,但没有[Authenticated]属性,会话为空(使用新id生成新会话,并且所有道具均未填充用户数据) 如何检查用户是否在没有使用jwt令牌的[Authenticate]a

我需要允许匿名访问端点,但仍要检查用户是否经过身份验证,然后提供一些额外的数据

使用我可以使用的[Authenticate]属性

var session = SessionAs<AuthUserSession>();
var session=SessionAs();
然后session.i被验证

它工作正常,但没有[Authenticated]属性,会话为空(使用新id生成新会话,并且所有道具均未填充用户数据)

如何检查用户是否在没有使用jwt令牌的[Authenticate]attibute with request的情况下通过身份验证?

是一个
IAuthWithRequest
提供程序,当需要对请求进行身份验证时,如果令牌无效,则只验证jwt令牌并返回相应的HTTP错误响应,例如,当使用
[Authenticate]
属性注释服务时。如果服务不需要身份验证,则不会验证
IAuthWithRequest
Auth提供程序和JWT承载令牌,并且不会自动填充用户会话

但在最新版本中,JWT AuthProvider中添加了新的API,以便能够创建自定义JWT令牌并将其转换为用户会话,具体而言,您可以通过以下方式从JWT令牌创建用户会话:

var session = JwtAuthProvider.CreateSessionFromJwt(base.Request);
用于解析已注册的
JwtAuthProviderReader
并调用其
ConvertJwtToSession()
API:

var jwtProvider = (JwtAuthProviderReader)
    AuthenticateService.GetAuthProvider(JwtAuthProviderReader.Name);
var session = jwtProvider.ConvertJwtToSession(base.Request, base.Request.GetJwtToken());

我使用的是asp.net核心,使用的代码是您提供给它的异常JwtAuthProvider行453。有什么想法吗?base.Request.GetJwtToken();是空的。我使用的是typescript客户端,正如我在属性中提到的,一切都很好。@Roman您能用发送令牌的typescript客户端请求更新您的问题吗?在代码中,您将调用
CreateSessionFromJwt
?能在一个地方完成吗?