Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
            }
        }