微头条项目实战:登录验证之后根据token获取账号id然后查询用户名的分析

1、NewsUserController 

package com.csdn.headline.controller;
import com.csdn.headline.common.Result;
import com.csdn.headline.common.ResultCodeEnum;
import com.csdn.headline.pojo.NewsUser;
import com.csdn.headline.service.NewsUserService;
import com.csdn.headline.util.JwtHelper;
import com.csdn.headline.util.MD5Util;
import com.csdn.mymvc.annotation.*;
import java.util.Map;
@Controller
@RequestMapping("/user")
public class NewsUserController {
    @Autowire
    private NewsUserService newsUserService;
    /**
     * 登录方法
     * @param newsUser 用户信息
     * @return 登录结果
     */
    @PostMapping("/login")
    public Result login(@RequestBody NewsUser newsUser) {
        // 根据用户名从数据库中获取用户信息
        NewsUser newsUserFromDB = newsUserService.getNewsUserByUserName(newsUser.getUsername());
        // 如果数据库中没有找到对应用户名的用户信息,则返回登录失败的结果
        if (newsUserFromDB == null) {
            return Result.build(null, ResultCodeEnum.USERNAME_ERROR);
        } else {
            // 获取数据库中用户密码
            String pwdFromDB = newsUserFromDB.getUserPwd();
            // 对输入的密码进行加密
            String yourPwd = MD5Util.encrypt(newsUser.getUserPwd());
            // 如果加密后的密码与数据库中的密码不一致,则返回登录失败的结果
            if (!yourPwd.equals(pwdFromDB)) {
                return Result.build(null, ResultCodeEnum.PASSWORD_ERROR);
            } else {
                String token = JwtHelper.createToken(newsUserFromDB.getUid().longValue());
                // 清空数据库中用户的密码,完成登录并返回用户信息
                newsUserFromDB.setUserPwd(null);
                return Result.ok(Map.of("token", token));
            }
        }
    }
}

微头条项目实战:登录验证之后根据token获取账号id然后查询用户名的分析_第1张图片

你可能感兴趣的:(#,IOC_MVC,java,Controller,RequestMapping,Autowire,PostMapping,RequestBody,MD5Util)