为了账号安全,请及时绑定邮箱和手机立即绑定

Servicestack JWT UserAuth null

Servicestack JWT UserAuth null

C#
慕娘9325324 2023-09-24 16:30:02
当使用邮递员的 JWT 时。我得到一个不记名令牌。但从服务调用 UserAuth 时的所有请求均为空。另外,在我的自定义 AuthUSerSession 会话中,该会话为空。我从身份验证设置中删除了 basicauth。粘贴在下面。它仍然通过基本身份验证,并且会话仍然为空。我想我错过了一些东西。有人可以帮我吗?    public class CustomUserSession : AuthUserSession        {               public override bool IsAuthorized(string provider)                {                    string sessionKey = SessionFeature.GetSessionKey(this.Id);                    var cacheClient = HostContext.TryResolve<ICacheClient>();                    CustomUserSession session = cacheClient.Get<CustomUserSession>(sessionKey); if (session == null)            {                return false;            }            return session.IsAuthenticated;        }    }//我的身份验证设置Plugins.Add(new AuthFeature(() => new CustomUserSession(),                new IAuthProvider[]                {                    new JwtAuthProvider(AppSettings) {                        CreatePayloadFilter = (payload,session) =>                            payload["CreatedAt"] = session.CreatedAt.ToUnixTime().ToString(),                        InvalidateTokensIssuedBefore = DateTime.Now,                         SetBearerTokenOnAuthenticateResponse = true,                        AuthKeyBase64 = AppSettings.GetString("jwt.auth.key"),                        RequireSecureConnection = false,                        }, //JWT TOKENS                    new CredentialsAuthProvider(AppSettings)                })            {                HtmlRedirect = "/",            });
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

JWT 支持无状态身份验证,其中用户会话不是保留在服务器上(并由 cookie 引用),而是完全封装在 JWT 承载令牌中。

当您使用 JWT Auth 时,您没有使用服务器会话,会话是在创建 JWT 承载令牌时(即通常在身份验证时)或在创建新的承载令牌时从用户会话的快照创建的。从刷新令牌中检索。

我不确定您为什么要尝试从 Session 实例中检索 Session ?实例本身应包含由服务或服务内的 API 检索的会话,SessionAs<T>例如:GetSession()IRequest

public object Any(MyRequest request){
   var session = SessionAs<CustomUserSession>();
}
查看完整回答
反对 回复 2023-09-24
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信