public async Task InvokeAsync(HttpContext context, RequestDelegate next) { if (string.IsNullOrWhiteSpace(context.Request.Headers["Authorization"].ToString())) { context.Response.StatusCode = 400; await context.Response.WriteAsync("Invalid token"); return; } var token = context.Request.Headers["Authorization"].ToString().Substring(7); var user = _db.Users.SingleOrDefault(usr => usr.Token == token); if (user == null) { var userIdentity = await _slack.Identify(token); if (userIdentity?.Id == null) { context.Response.StatusCode = 403; return; } await UpdateUserToken(userIdentity.Id, token); } await next(context); }
public async Task <IActionResult> GetUser() { var token = Request.Headers["Authorization"].ToString().Substring(7); var user = _userRepository.GetUserByToken(token); var identity = await _slack.Identify(token); return(Ok(new UserInformation(user, identity.Name, identity.image_48))); }