mirror of
https://git.v0l.io/Kieran/void.cat.git
synced 2025-11-15 13:27:54 +01:00
Review tweaks
This commit is contained in:
@@ -65,7 +65,7 @@ public class AdminController : Controller
|
|||||||
/// <param name="request">Page request</param>
|
/// <param name="request">Page request</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route("user")]
|
[Route("users")]
|
||||||
public async Task<RenderedResults<AdminListedUser>> ListUsers([FromBody] PagedRequest request)
|
public async Task<RenderedResults<AdminListedUser>> ListUsers([FromBody] PagedRequest request)
|
||||||
{
|
{
|
||||||
var result = await _userStore.ListUsers(request);
|
var result = await _userStore.ListUsers(request);
|
||||||
@@ -91,7 +91,7 @@ public class AdminController : Controller
|
|||||||
/// <param name="user"></param>
|
/// <param name="user"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route("user/{id}")]
|
[Route("update-user")]
|
||||||
public async Task<IActionResult> UpdateUser([FromBody] PrivateVoidUser user)
|
public async Task<IActionResult> UpdateUser([FromBody] PrivateVoidUser user)
|
||||||
{
|
{
|
||||||
var oldUser = await _userStore.Get(user.Id);
|
var oldUser = await _userStore.Get(user.Id);
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class AuthController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
var user = await _manager.Login(req.Username, req.Password);
|
var user = await _manager.Login(req.Username, req.Password);
|
||||||
var token = CreateToken(user);
|
var token = CreateToken(user, DateTime.UtcNow.AddHours(12));
|
||||||
var tokenWriter = new JwtSecurityTokenHandler();
|
var tokenWriter = new JwtSecurityTokenHandler();
|
||||||
return new(tokenWriter.WriteToken(token), Profile: user.ToPublic());
|
return new(tokenWriter.WriteToken(token), Profile: user.ToPublic());
|
||||||
}
|
}
|
||||||
@@ -86,7 +86,7 @@ public class AuthController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
var newUser = await _manager.Register(req.Username, req.Password);
|
var newUser = await _manager.Register(req.Username, req.Password);
|
||||||
var token = CreateToken(newUser);
|
var token = CreateToken(newUser, DateTime.UtcNow.AddHours(12));
|
||||||
var tokenWriter = new JwtSecurityTokenHandler();
|
var tokenWriter = new JwtSecurityTokenHandler();
|
||||||
return new(tokenWriter.WriteToken(token), Profile: newUser.ToPublic());
|
return new(tokenWriter.WriteToken(token), Profile: newUser.ToPublic());
|
||||||
}
|
}
|
||||||
@@ -137,7 +137,7 @@ public class AuthController : Controller
|
|||||||
{
|
{
|
||||||
Id = Guid.NewGuid(),
|
Id = Guid.NewGuid(),
|
||||||
UserId = user.Id,
|
UserId = user.Id,
|
||||||
Token = new JwtSecurityTokenHandler().WriteToken(CreateApiToken(user, expiry)),
|
Token = new JwtSecurityTokenHandler().WriteToken(CreateToken(user, expiry)),
|
||||||
Expiry = expiry
|
Expiry = expiry
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -145,7 +145,7 @@ public class AuthController : Controller
|
|||||||
return Json(key);
|
return Json(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
private JwtSecurityToken CreateApiToken(VoidUser user, DateTime expiry)
|
private JwtSecurityToken CreateToken(VoidUser user, DateTime expiry)
|
||||||
{
|
{
|
||||||
var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_settings.JwtSettings.Key));
|
var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_settings.JwtSettings.Key));
|
||||||
var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
|
var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
|
||||||
@@ -153,7 +153,6 @@ public class AuthController : Controller
|
|||||||
var claims = new List<Claim>()
|
var claims = new List<Claim>()
|
||||||
{
|
{
|
||||||
new(ClaimTypes.NameIdentifier, user.Id.ToString()),
|
new(ClaimTypes.NameIdentifier, user.Id.ToString()),
|
||||||
new(JwtRegisteredClaimNames.Aud, "API"),
|
|
||||||
new(JwtRegisteredClaimNames.Exp, new DateTimeOffset(expiry).ToUnixTimeSeconds().ToString()),
|
new(JwtRegisteredClaimNames.Exp, new DateTimeOffset(expiry).ToUnixTimeSeconds().ToString()),
|
||||||
new(JwtRegisteredClaimNames.Iat, DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString())
|
new(JwtRegisteredClaimNames.Iat, DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString())
|
||||||
};
|
};
|
||||||
@@ -164,24 +163,6 @@ public class AuthController : Controller
|
|||||||
signingCredentials: credentials);
|
signingCredentials: credentials);
|
||||||
}
|
}
|
||||||
|
|
||||||
private JwtSecurityToken CreateToken(VoidUser user)
|
|
||||||
{
|
|
||||||
var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_settings.JwtSettings.Key));
|
|
||||||
var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
|
|
||||||
|
|
||||||
var claims = new List<Claim>()
|
|
||||||
{
|
|
||||||
new(ClaimTypes.NameIdentifier, user.Id.ToString()),
|
|
||||||
new(JwtRegisteredClaimNames.Exp, DateTimeOffset.UtcNow.AddHours(6).ToUnixTimeSeconds().ToString()),
|
|
||||||
new(JwtRegisteredClaimNames.Iat, DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString())
|
|
||||||
};
|
|
||||||
|
|
||||||
claims.AddRange(user.Roles.Select(a => new Claim(ClaimTypes.Role, a)));
|
|
||||||
|
|
||||||
return new JwtSecurityToken(_settings.JwtSettings.Issuer, claims: claims,
|
|
||||||
signingCredentials: credentials);
|
|
||||||
}
|
|
||||||
|
|
||||||
public sealed class LoginRequest
|
public sealed class LoginRequest
|
||||||
{
|
{
|
||||||
public LoginRequest(string username, string password)
|
public LoginRequest(string username, string password)
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ public static class UsersStartup
|
|||||||
{
|
{
|
||||||
services.AddTransient<IUserStore, CacheUserStore>();
|
services.AddTransient<IUserStore, CacheUserStore>();
|
||||||
services.AddTransient<IEmailVerification, CacheEmailVerification>();
|
services.AddTransient<IEmailVerification, CacheEmailVerification>();
|
||||||
|
services.AddTransient<IApiKeyStore, CacheApiKeyStore>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -27,8 +27,8 @@ export function useApi() {
|
|||||||
AdminApi: {
|
AdminApi: {
|
||||||
fileList: (pageReq) => getJson("POST", "/admin/file", pageReq, auth),
|
fileList: (pageReq) => getJson("POST", "/admin/file", pageReq, auth),
|
||||||
deleteFile: (id) => getJson("DELETE", `/admin/file/${id}`, undefined, auth),
|
deleteFile: (id) => getJson("DELETE", `/admin/file/${id}`, undefined, auth),
|
||||||
userList: (pageReq) => getJson("POST", `/admin/user`, pageReq, auth),
|
userList: (pageReq) => getJson("POST", `/admin/users`, pageReq, auth),
|
||||||
updateUser: (user) => getJson("POST", `/admin/user/${user.id}`, user, auth)
|
updateUser: (user) => getJson("POST", `/admin/update-user`, user, auth)
|
||||||
},
|
},
|
||||||
Api: {
|
Api: {
|
||||||
info: () => getJson("GET", "/info"),
|
info: () => getJson("GET", "/info"),
|
||||||
|
|||||||
Reference in New Issue
Block a user