cleanup of authentication
This commit is contained in:
@@ -21,14 +21,21 @@ namespace MareSynchronosServer.Authentication
|
||||
|
||||
protected override async Task<AuthenticateResult> HandleAuthenticateAsync()
|
||||
{
|
||||
if (!Request.Headers.ContainsKey("Authorization"))
|
||||
if (!Request.Headers.ContainsKey("Authorization") || !Request.Headers.ContainsKey("CharacterNameHash"))
|
||||
return AuthenticateResult.Fail("Failed Authorization");
|
||||
|
||||
var authHeader = Request.Headers["Authorization"].ToString();
|
||||
var charNameHeader = Request.Headers["CharacterNameHash"].ToString();
|
||||
|
||||
if (string.IsNullOrEmpty(authHeader))
|
||||
if (string.IsNullOrEmpty(authHeader) || string.IsNullOrEmpty(charNameHeader) || charNameHeader == "--")
|
||||
return AuthenticateResult.Fail("Failed Authorization");
|
||||
|
||||
var isBanned = await _mareDbContext.BannedUsers.AnyAsync(u => u.CharacterIdentification == charNameHeader);
|
||||
if (isBanned)
|
||||
{
|
||||
return AuthenticateResult.Fail("Banned");
|
||||
}
|
||||
|
||||
using var sha256 = SHA256.Create();
|
||||
var hashedHeader = BitConverter.ToString(sha256.ComputeHash(Encoding.UTF8.GetBytes(authHeader))).Replace("-", "");
|
||||
var user = _mareDbContext.Users.SingleOrDefault(m => m.SecretKey == hashedHeader);
|
||||
@@ -38,18 +45,6 @@ namespace MareSynchronosServer.Authentication
|
||||
return AuthenticateResult.Fail("Failed Authorization");
|
||||
}
|
||||
|
||||
var charNameHeader = Request.Headers["CharacterNameHash"].ToString();
|
||||
|
||||
if (string.IsNullOrEmpty(charNameHeader) || charNameHeader == "--")
|
||||
return AuthenticateResult.Fail("Requires CharacterNameHash");
|
||||
|
||||
var isBanned = await _mareDbContext.BannedUsers.AnyAsync(u => u.CharacterIdentification == charNameHeader);
|
||||
|
||||
if (isBanned)
|
||||
{
|
||||
return AuthenticateResult.Fail("Banned");
|
||||
}
|
||||
|
||||
user.CharacterIdentification = charNameHeader;
|
||||
_mareDbContext.Users.Update(user);
|
||||
await _mareDbContext.SaveChangesAsync();
|
||||
|
||||
Reference in New Issue
Block a user