新增注册流程

This commit is contained in:
南浔 2024-11-03 22:05:07 +08:00
commit 77bd3b3475

View File

@ -32,23 +32,25 @@ namespace Apimanager_backend.Controllers
[HttpPost] [HttpPost]
public async Task<ActionResult<ResponseBase<UserInfoDto>>> Login([FromBody] UserLoginDto dto) public async Task<ActionResult<ResponseBase<UserInfoDto>>> Login([FromBody] UserLoginDto dto)
{ {
UserInfoDto user = await authService.LoginAsync(dto.UserName, dto.Password); try
//生成token {
UserInfoDto user = await authService.LoginAsync(dto.UserName, dto.Password);
//生成token
string token = tokenService.GenerateAccessToken(user.Id.ToString(), user.Roles); string token = tokenService.GenerateAccessToken(user.Id.ToString(), user.Roles);
//生成refreshtoken //生成refreshtoken
string refreshToken = await refreshTokenService.CreateRefereshTokenAsync(user.Id.ToString()); string refreshToken = await refreshTokenService.CreateRefereshTokenAsync(user.Id.ToString());
var responseInfo = new ResponseBase<LoginResponseDto>( var responseInfo = new ResponseBase<LoginResponseDto>(
code: 2000, code: 2000,
message: "Login successful", message: "Login successful",
data: new LoginResponseDto data: new LoginResponseDto
{ {
UserInfo = user, UserInfo = user,
Token = token, Token = token,
RefreshToken = refreshToken RefreshToken = refreshToken
} }
); );
return Ok(responseInfo); return Ok(responseInfo);
} }
/// <summary> /// <summary>
/// 令牌刷新 /// 令牌刷新
/// </summary> /// </summary>
@ -58,34 +60,34 @@ namespace Apimanager_backend.Controllers
public async Task<ActionResult<ResponseBase<RefreshResponseDto?>>> Refresh([FromBody]RefreshResponseDto dto) public async Task<ActionResult<ResponseBase<RefreshResponseDto?>>> Refresh([FromBody]RefreshResponseDto dto)
{ {
var IsRefreshToken = await refreshTokenService.ValidateRefreshTokenAsync(dto.UserId.ToString(),dto.RefreshToken); var IsRefreshToken = await refreshTokenService.ValidateRefreshTokenAsync(dto.UserId.ToString(),dto.RefreshToken);
//刷新令牌无效 //刷新令牌无效
if (!IsRefreshToken) if (!IsRefreshToken)
{ {
var ret = new ResponseBase<RefreshResponseDto?>( var ret = new ResponseBase<RefreshResponseDto?>(
code: 2008, code: 2008,
message: "Refresh expires or is invalid", message: "Refresh expires or is invalid",
data: null data: null
); );
return Unauthorized(ret); return Unauthorized(ret);
} }
//获取刷新令牌对应用户信息 //获取刷新令牌对应用户信息
var userInfo = await userService.GetUserAsync(dto.UserId); var userInfo = await userService.GetUserAsync(dto.UserId);
//重新生成令牌 //重新生成令牌
var token = tokenService.GenerateAccessToken(userInfo.Id.ToString(), userInfo.Roles); var token = tokenService.GenerateAccessToken(userInfo.Id.ToString(), userInfo.Roles);
//刷新刷新令牌有效期(小于三天才会刷新) //刷新刷新令牌有效期(小于三天才会刷新)
await refreshTokenService.UpdateRefreshTokenAsync(userInfo.Id.ToString()); await refreshTokenService.UpdateRefreshTokenAsync(userInfo.Id.ToString());
var result = new ResponseBase<RefreshResponseDto?>( var result = new ResponseBase<RefreshResponseDto?>(
code: 1000, code: 1000,
message: "Success", message: "Success",
data: new RefreshResponseDto data: new RefreshResponseDto
{ {
UserId = dto.UserId, UserId = dto.UserId,
Token = token, Token = token,
RefreshToken = dto.RefreshToken RefreshToken = dto.RefreshToken
} }
); );
return Ok(result); return Ok(result);
} }
/// <summary> /// <summary>
/// 用户注册 /// 用户注册
@ -124,7 +126,7 @@ namespace Apimanager_backend.Controllers
return StatusCode(500,res); return StatusCode(500,res);
} }
} }
/// <summary> /// <summary>
/// 发送邮箱校验码 /// 发送邮箱校验码
/// </summary> /// </summary>
@ -154,5 +156,6 @@ namespace Apimanager_backend.Controllers
return Ok(res); return Ok(res);
} }
}
} }
} }