feat: 后端添加管理员认证
This commit is contained in:
parent
3f2c772eeb
commit
546b9250fa
|
@ -1,3 +1,4 @@
|
|||
using System.Security.Claims;
|
||||
using System.Text;
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
|
@ -61,6 +62,15 @@ try
|
|||
options.Authority = "http://localhost:5000";
|
||||
options.RequireHttpsMetadata = false;
|
||||
});
|
||||
builder.Services.AddAuthorization(options =>
|
||||
{
|
||||
options.AddPolicy("Admin", policy =>
|
||||
{
|
||||
policy.RequireClaim(ClaimTypes.Role, new string[] {
|
||||
Database.User.UserPermission.Admin.ToString(),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Add CORS policy
|
||||
if (builder.Environment.IsDevelopment())
|
||||
|
@ -159,6 +169,7 @@ try
|
|||
app.UseHttpsRedirection();
|
||||
app.UseRouting();
|
||||
app.UseCors();
|
||||
app.UseAuthentication();
|
||||
app.UseAuthorization();
|
||||
|
||||
// Swagger
|
||||
|
|
|
@ -69,6 +69,7 @@ public class DataController : ControllerBase
|
|||
{
|
||||
new Claim(ClaimTypes.Name, user.Name),
|
||||
new Claim(ClaimTypes.Email, user.EMail),
|
||||
new Claim(ClaimTypes.Role, user.Permission.ToString())
|
||||
}),
|
||||
Expires = DateTime.UtcNow.AddHours(1),
|
||||
SigningCredentials = new SigningCredentials(
|
||||
|
@ -96,6 +97,20 @@ public class DataController : ControllerBase
|
|||
return Ok("认证成功!");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 测试管理员用户认证,需携带有效 JWT
|
||||
/// </summary>
|
||||
/// <returns>认证成功信息</returns>
|
||||
[Authorize("Admin")]
|
||||
[HttpGet("TestAdminAuth")]
|
||||
[EnableCors("Users")]
|
||||
[ProducesResponseType(typeof(string), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
||||
public IActionResult TestAdminAuth()
|
||||
{
|
||||
return Ok("认证成功!");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前用户信息
|
||||
/// </summary>
|
||||
|
|
|
@ -182,7 +182,6 @@ onMounted(() => {
|
|||
|
||||
// 监听路由变化
|
||||
router.afterEach(() => {
|
||||
console.log("Route is changing, reloading user info...");
|
||||
loadUserInfo();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<template>
|
||||
<div class="min-h-screen bg-base-100 container mx-auto p-6 space-y-6 flex flex-row">
|
||||
<div
|
||||
class="min-h-screen bg-base-100 container mx-auto p-6 space-y-6 flex flex-row"
|
||||
>
|
||||
<ul class="menu bg-base-200 w-56 gap-2 rounded-2xl p-5">
|
||||
<li id="1" @click="setActivePage">
|
||||
<a :class="{ 'menu-active': activePage === 1 }">用户信息</a>
|
||||
|
@ -7,8 +9,8 @@
|
|||
<li id="2" @click="setActivePage">
|
||||
<a :class="{ 'menu-active': activePage === 2 }">Item 2</a>
|
||||
</li>
|
||||
<li id="" @click="setActivePage">
|
||||
<a :class="{ 'menu-active': activePage === 2 }">Item 2</a>
|
||||
<li id="100" @click="setActivePage">
|
||||
<a :class="{ 'menu-active': activePage === 100 }">实验板控制台</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="divider divider-horizontal h-full"></div>
|
||||
|
|
Loading…
Reference in New Issue