public async Task <IActionResult> AddRole([FromBody] RolePayload payload) { var group = await SingleOrError(_groupsRepo.FindOne(EntityId).Include(_ => _.Roles)); var role = await _rolesRepo.GetOrCreate(payload.Section, payload.Num); var groupRole = await _groupsRepo.AddRole(group, role); return(Ok(Mapper.Map <GroupRoleData>(groupRole))); }
public static async ValueTask <Role> DecodeRoleJwtPayloadFromCookieAsync( this HttpContext context, string jwtSecret, FixtureDomainRepository repository) { string?token = context.Request.Cookies[nameof(Role)]; if (token == null) { throw new InvalidOperationException("HttpContext Request doesn't contain Role cookie item."); } RolePayload payload = Jose.JWT.Decode <RolePayload>(token, jwtSecret, JweAlgorithm.PBES2_HS256_A128KW, JweEncryption.A256CBC_HS512); return(await repository.Roles.FindAsync(payload.UserId) ?? throw new InvalidOperationException($"UserId: {payload.UserId} doesn't exists ")); }