forked from gongxuegit/tiku-backend.net
feat: add wechat authentication
This commit is contained in:
@@ -44,6 +44,40 @@ public sealed class AuthController(IAuthService authService) : ControllerBase
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost("oauth/wechat")]
|
||||
public async Task<ActionResult<AuthenticatedUser>> LoginWithWechatWeb(
|
||||
WechatLoginHttpRequest request,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var result = await authService.LoginWithWechatWebAsync(
|
||||
new WechatLoginRequest(
|
||||
request.TenantId,
|
||||
request.Code,
|
||||
GetIpAddress(),
|
||||
Request.Headers.UserAgent.ToString()),
|
||||
cancellationToken);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost("oauth/wechat-miniapp")]
|
||||
public async Task<ActionResult<AuthenticatedUser>> LoginWithWechatMiniApp(
|
||||
WechatLoginHttpRequest request,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var result = await authService.LoginWithWechatMiniAppAsync(
|
||||
new WechatLoginRequest(
|
||||
request.TenantId,
|
||||
request.Code,
|
||||
GetIpAddress(),
|
||||
Request.Headers.UserAgent.ToString()),
|
||||
cancellationToken);
|
||||
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost("refresh")]
|
||||
public async Task<ActionResult<AuthTokenPair>> Refresh(
|
||||
@@ -89,4 +123,8 @@ public sealed record SmsLoginHttpRequest(
|
||||
string Phone,
|
||||
string Code);
|
||||
|
||||
public sealed record WechatLoginHttpRequest(
|
||||
Guid TenantId,
|
||||
string Code);
|
||||
|
||||
public sealed record RefreshHttpRequest(string RefreshToken);
|
||||
|
||||
@@ -44,6 +44,7 @@ public sealed class ExceptionHandlingMiddleware(
|
||||
{
|
||||
"tenant_access_denied" => StatusCodes.Status403Forbidden,
|
||||
"sms_rate_limited" => StatusCodes.Status429TooManyRequests,
|
||||
"auth_provider_not_configured" => StatusCodes.Status503ServiceUnavailable,
|
||||
"session_revoked" => StatusCodes.Status401Unauthorized,
|
||||
_ => StatusCodes.Status401Unauthorized
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user