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

C#/.NET API登录接口改造:移除密码并添加JWT令牌

解决C#登录接口返回对象的字段调整问题

方案一:使用强类型DTO(推荐)

先创建一个专门用于登录返回的DTO类,只保留需要对外暴露的字段,同时加上JWT令牌字段:

public class UserLoginResponse
{
    public string Email { get; set; }
    public string Name { get; set; }
    public string Token { get; set; }
}

接着在你的登录方法里,把数据库返回的用户对象属性映射到这个DTO,并注入生成好的Token:

public object LoginCurrentUser(User user) {
    var result = AuthenticateUser(user);

    if (result != null)
    {
        var token = Generate(user);

        // 创建符合要求的返回对象
        var response = new UserLoginResponse
        {
            Email = result.Email,
            Name = result.Name,
            Token = token
        };

        return response;
    }
    else {
        return null;
    }
}

这种方式类型安全,后续要加字段或者修改结构都很方便,前端对接时也能明确知道返回的数据结构,是生产环境里的首选方案。

方案二:使用匿名类型(快速临时实现)

如果不想额外定义类,也可以直接用匿名类型组装返回内容:

public object LoginCurrentUser(User user) {
    var result = AuthenticateUser(user);

    if (result != null)
    {
        var token = Generate(user);

        // 直接创建匿名对象,过滤掉密码并添加Token
        var response = new 
        {
            Email = result.Email,
            Name = result.Name,
            Token = token
        };

        return response;
    }
    else {
        return null;
    }
}

这个方式不用额外写类,适合快速验证功能,但没有强类型支持,后续维护或复用这个结构会比较麻烦,适合临时场景用。

内容的提问来源于stack exchange,提问作者Cypher

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:00:39