我正在构建一个具有 ASP.NET Web API 后端和 Vue.js 前端的 Web 应用程序。我已经实现了 JWT 身份验证,并出于安全原因将访问令牌存储在 HTTPOnly cookie 中。但是,我在前端检查用户身份验证状态时面临挑战。
由于令牌是 HTTPOnly,因此无法从 JavaScript(包括 Vue.js)访问它。这意味着我无法直接检查用户是否在前端经过身份验证。
我的问题是如何在 Vue.js 前端有效检查用户身份验证状态,同时保持 HTTPOnly JWT 令牌的安全性?有没有推荐的策略或模式来实现这一目标?
您可以在 Web api 中创建授权端点(例如 GetAuthStatus),并在路由更改时在客户端验证它。建议将令牌保留在 HttpOnly cookie 中。
类似这样的事情
[Authorize]
[HttpGet]
public IActionResult GetAuthStatus()
{
return Ok(new { isAuthenticated = true, userName = User.Identity.Name
});
}