Add a admin user and the "role" information into the token.

This commit is contained in:
Sébastien André
2021-03-17 14:06:51 +01:00
parent 229fe5d3a5
commit ee3a1273da
4 changed files with 28 additions and 9 deletions

View File

@@ -55,9 +55,9 @@ namespace skydiveLogs_api.Controllers
}
else
{
foundUser.Password = null;
var resp = _mapper.Map<UserResp>(foundUser);
resp.Token = CreateToken(resp);
var userRole = foundUser.IsAdmin ? "admin" : string.Empty;
resp.Token = CreateToken(resp, userRole);
result = Ok(resp);
}
@@ -80,9 +80,9 @@ namespace skydiveLogs_api.Controllers
}
else
{
newUser.Password = null;
var resp = _mapper.Map<UserResp>(newUser);
resp.Token = CreateToken(resp);
var userRole = newUser.IsAdmin ? "admin" : string.Empty;
resp.Token = CreateToken(resp, userRole);
result = Ok(resp);
}
@@ -90,7 +90,8 @@ namespace skydiveLogs_api.Controllers
return result;
}
private string CreateToken(UserResp foundUser)
private string CreateToken(UserResp foundUser,
string role)
{
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtConf.Passphrase));
var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
@@ -103,7 +104,8 @@ namespace skydiveLogs_api.Controllers
{
new Claim(ClaimTypes.Name, foundUser.Login),
new Claim(ClaimTypes.UserData, foundUser.Id.ToString()),
new Claim(ClaimTypes.Email, foundUser.Email)
new Claim(ClaimTypes.Email, foundUser.Email),
new Claim(ClaimTypes.Role, role)
});
return new JwtSecurityTokenHandler().WriteToken(token);