public override async Task <HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken) { //Получаем access_token из хедера IEnumerable <string> headerValues; controllerContext.Request.Headers.TryGetValues("access_token", out headerValues); //Если хедер пустой, то пользователь считаетсмя неавторизованным var headersOfValuesList = headerValues as IList <string> ?? headerValues.ToList(); if (headersOfValuesList.First().IsEmpty()) { return(await Task.FromResult( controllerContext.Request.CreateResponse(HttpStatusCode.Unauthorized, "Хедр пустой пришел с vk"))); } //Проверяем через сервис валидность токена доступа, сервис возвращает данные о пользователе var userInfo = await _authrorizeServise.Authorize(headersOfValuesList.First()); //Если данных нет, то пользователь считается неавторизованным if (userInfo == null) { return(await Task.FromResult( controllerContext.Request.CreateResponse(HttpStatusCode.Unauthorized))); } //Установка свойства идентификации пользователя UserId = ((UserPostModel)userInfo).response.First().uid; return(await base.ExecuteAsync(controllerContext, cancellationToken)); }
public async Task <object> Login(string access_token) { var response = await _authrorizeServise.Authorize(access_token); if (response == null) { return(ResponseMessage(new HttpResponseMessage(HttpStatusCode.Unauthorized))); } else { return(response); } }