更新Auth0配置并优化JWT验证和用户控制器

This commit is contained in:
罗澜大帅哥 2025-07-06 18:54:51 +08:00
parent f3e6328a75
commit 68ac3a2ca2
4 changed files with 44 additions and 14 deletions

View File

@ -1,3 +1,4 @@
using System.Security.Claims;
using AGSS.Models;
using AGSS.Models.DTOs;
using AGSS.Models.Entities;
@ -24,11 +25,6 @@ public class UserInfoController : ControllerBase
public async Task<IActionResult> My()
{
// _context.UserModels.Add(user);
// await _context.SaveChangesAsync();
// return Ok(new ReturnTemplate(200, "成功",user));
return Ok();
}
@ -43,7 +39,7 @@ public class UserInfoController : ControllerBase
[Authorize]
public async Task<IActionResult> NextInfo([FromBody]UserRequest data)
{
var authId = this.User.FindFirst("sub")!.Value;
var authId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
UserModel user = new UserModel
{
AuthId = authId,
@ -68,7 +64,7 @@ public class UserInfoController : ControllerBase
[Authorize]
public async Task<IActionResult> IsNewUser()
{
var authId = this.User.FindFirst("sub")!.Value;
var authId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
var isNewUser=await _context.UserModels.AnyAsync(a => a.AuthId == authId);
return Ok(new ReturnTemplate(200, "成功",isNewUser));
}

View File

@ -1,4 +1,5 @@
using System.Reflection;
using System.Text;
using AGSS.Models;
using AGSS.Models.Template;
using Microsoft.AspNetCore.Authentication.JwtBearer;
@ -36,13 +37,21 @@ builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
{
options.Authority = domain;
options.Audience = audience;
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidIssuer = domain,
ValidAudience = audience
// ValidAudience = audience,
};
options.Events = new JwtBearerEvents
{
@ -69,6 +78,29 @@ builder.Services.AddSwaggerGen(c =>
var xmlFil = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFil);
c.IncludeXmlComments(xmlPath);
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
Description = "直接在下框中输入Bearer {token}(注意两者之间是一个空格)",
Name = "Authorization",
BearerFormat = "JWT",
Scheme = "Bearer"
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference=new OpenApiReference
{
Type=ReferenceType.SecurityScheme,
Id="Bearer"
}
},
new string[] {}
}
});
});
var app = builder.Build();

View File

@ -8,8 +8,9 @@
"AllowedHosts": "*",
"Auth0": {
"Domain": "https://dev-f8lrenkd107vqnti.us.auth0.com/",
"Audience": "https://zeronode.AGSBackend.com",
"ClientId": "4JenP8xcKJsj251mUvRFbkJKEuPlBs6p"
"Audience": "https://AGSSadmin.ASGG.com",
"ClientId": "4JenP8xcKJsj251mUvRFbkJKEuPlBs6p",
"Secret": "7wU9bdVfBsX3jITh0w4bgE6fkvLk8pIcZRSUw6r8HQUnXfslYxlx4c4E0ZAIw4Ak"
},
"ConnectionStrings": {
"DBContext": "Host=localhost;Port=5432;Database=postgres;Username=postgres;Password=luolan12323;"

View File

@ -8,8 +8,9 @@
"AllowedHosts": "*",
"Auth0": {
"Domain": "https://dev-f8lrenkd107vqnti.us.auth0.com/",
"Audience": "https://zeronode.AGSBackend.com",
"ClientId": "4JenP8xcKJsj251mUvRFbkJKEuPlBs6p"
"Audience": "https://AGSSadmin.ASGG.com",
"ClientId": "4JenP8xcKJsj251mUvRFbkJKEuPlBs6p",
"Secret": "7wU9bdVfBsX3jITh0w4bgE6fkvLk8pIcZRSUw6r8HQUnXfslYxlx4c4E0ZAIw4Ak"
},
"ConnectionStrings": {
"DBContext": "Host=localhost;Port=5432;Database=postgres;Username=postgres;Password=luolan12323;"