【发布时间】:2018-12-06 21:40:03
【问题描述】:
我正在编写一个三级应用程序。我有 ASP.NET Core 2.1 Api、Web 客户端应用程序和 Android 应用程序。 Api 受 Jwt 授权保护。我在存储从 Api 获取的令牌到 Web 客户端时遇到问题。为此,我需要一种安全的方式,我正在考虑将其存储在ClaimsIdentity 中是否是一种好方法。我将在此处添加它:
var claims = new List<Claim>
{
new Claim(ClaimTypes.NameIdentifier, token.userId),
new Claim(ClaimTypes.Name, token.userName),
// Here add new Claim(ClaimTypes.Authentication, token.token)
};
var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
var principal = new ClaimsPrincipal(identity);
await HttpContext.SignInAsync(principal);
这是正确且安全的方式吗?
【问题讨论】:
-
您反对使用 Localstorage 存储不记名令牌的想法吗?
-
我发现了类似 Secret Manager docs.microsoft.com/pl-pl/aspnet/core/security/… 的东西,但正如微软所说,它仅用于开发目的而不是生产目的。所以这不是一个好主意。也许我应该使用 Cookie 或 Session 变量?
标签: c# asp.net-core jwt token