You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8中如何自定义IdentityUser模型及修改Token过期时间

当然可以直接自定义默认的Identity模型,无需从零搭建认证服务。以下是具体实现步骤:

一、扩展IdentityUser添加自定义个人信息字段
  1. 创建自定义用户模型,继承IdentityUser并添加所需字段:
public class AppUser : IdentityUser
{
    public string FullName { get; set; } // 姓名
    public string Address { get; set; } // 地址
    public string Gender { get; set; } // 性别
}
  1. 更新DbContext,指定使用自定义用户模型:
public class AppDbContext : IdentityDbContext<AppUser>
{
    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
    {
    }
}
  1. 修改服务注册代码,将泛型参数替换为自定义模型:
builder.Services.AddIdentityApiEndpoints<AppUser>()
    .AddEntityFrameworkStores<AppDbContext>();
  1. 扩展注册请求字段:默认注册端点会自动识别自定义字段,请求示例如下:
{
  "email": "user@example.com",
  "password": "P@ssw0rd!",
  "fullName": "张三",
  "address": "北京市朝阳区",
  "gender": "男"
}
  1. 执行数据库迁移更新表结构:
Add-Migration AddCustomUserFields
Update-Database
二、修改Token的expiresIn有效期

通过配置调整AccessToken的生命周期,即可修改expiresIn的值,以下两种方式任选其一:

方式一:配置IdentityOptions

builder.Services.Configure<IdentityOptions>(options =>
{
    // 设置为2小时(7200秒),可根据需求调整
    options.Tokens.AccessTokenLifetime = TimeSpan.FromHours(2);
});

方式二:配合AddIdentityApiEndpoints配置ApiAuthorizationOptions

builder.Services.AddIdentityApiEndpoints<AppUser>()
    .AddEntityFrameworkStores<AppDbContext>()
    .AddApiAuthorization(options =>
    {
        options.AccessTokenLifetime = TimeSpan.FromHours(2);
    });

修改完成后,登录接口返回的token中expiresIn会更新为设置的秒数(示例中为7200)。


内容的提问来源于stack exchange,提问作者Doğa Koçak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 01:11:19