Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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)));
        }