當使用郵遞員的 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>(); }
- 1 回答
- 0 關注
- 158 瀏覽
添加回答
舉報
0/150
提交
取消