asp.net-core - 无效的对象名称'RefreshToken
问题描述
我正在尝试使用 sql 作为数据库和 asp.net 核心作为前端使用 jwt 和刷新令牌创建登录系统。
我得到以下错误。在数据库中,我创建了用户表,但没有创建 RefreshToken 表,因为 RefreshToken 将生成并保存在浏览器的 cookie 中。
无效的对象名称'RefreshToken
这是我的模型用户
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Username { get; set; }
[JsonIgnore]
public string Password { get; set; }
[JsonIgnore]
public List<RefreshToken> RefreshTokens { get; set; }
}
这是另一个模型 RefreshToken
using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;
namespace Api_R.Entities
{
[Owned]
public class RefreshToken
{
[Key]
[JsonIgnore]
public int Id { get; set; }
public string Token { get; set; }
public DateTime Expires { get; set; }
/////////
}
}
在这里我正在使用我的控制器
public AuthenticateResponse Authenticate(AuthenticateRequest model, string ipAddress)
{
var user = _apiDbContext.User.SingleOrDefault(x => x.Username == model.Username && x.Password==model.Password);
// validate
if (user == null)//|| !BCryptNet.Verify(model.Password, user.PasswordHash))
throw new AppException("Username or password is incorrect");
// authentication successful so generate jwt and refresh tokens
var jwtToken = _jwtUtils.GenerateJwtToken(user);
var refreshToken = _jwtUtils.GenerateRefreshToken(ipAddress);
user.RefreshTokens.Add(refreshToken);
// remove old refresh tokens from user
removeOldRefreshTokens(user);
return new AuthenticateResponse(user, jwtToken, refreshToken.Token);
}
现在我收到错误无效对象名称刷新令牌
解决方案
推荐阅读
- android - 如何在 React Native 上的页面之间导航?
- javascript - 当紧跟在另一个自关闭自定义元素之前时,自关闭自定义元素不显示
- algorithm - 给定一个字符串集合,我们可以让所有字符串相等吗
- python - 重新运行单元格时,Spyder 不会释放内存
- javascript - 如何在没有用户交互的情况下下载和播放音频剪辑?
- css - 用于颜色级别的 Bootstrap 5 映射
- python - 在 Flask 中使用 jsonify 时遇到问题
- sql - SQL 选择快,更新慢
- javascript - Javascript测验分数保存到下一页
- android-studio - android studio更新后预览面板提供程序(JavaFX WebView)错误