Загрузка из Документов Google с использованием Uri, содержащего access_token

Я создаю приложение для просмотра для Windows Phone 7. Приложение уже обрабатывает материалы OAuth2 и успешно просматривает структуру папок Google Doc.

Я использую API списка документов Google 3. Кстати, просмотр работает отлично без использования заголовков запроса, вместо этого я добавляю access_token к запросу Uri.

Теперь приложению нужно показывать файлы пользователю, по возможности без их предварительной загрузки. Это означает, что я хочу установить Image.Source пользовательского интерфейса в Uri изображения, MediaElement.Source пользовательского интерфейса в Uri видео и BackgroundAudioPlayer.Track.Source в Uri аудиофайла. Очевидно, я не могу использовать заголовки запросов в этом сценарии.

Однако кажется, что простое добавление access_token к Uri загрузки не работает. Элементы пользовательского интерфейса выходят из строя с общими сообщениями об ошибках, и если я вручную пытаюсь использовать веб-браузер (который не вошел в систему Google), он показывает пустой экран, ошибку 401 или перенаправляет на страницу входа в Google.

Можно ли загрузить / передать запись данных Google, просто указав Uri? Если да, то как должен выглядеть Uri?


person HDW Production    schedule 14.05.2012    source источник


Ответы (1)


Поддержка авторизации с использованием URL-параметра access_token специально не разрешена из соображений безопасности. По сути, если пользователь откроет вредоносный файл в браузере (например, html, содержащий некоторый Javascript, будет достаточно), вредоносный код в файле может украсть токен доступа в URL-адресе и отправить его стороннему злоумышленнику.

Для доступа к файлу необходимо авторизоваться с помощью HTTP-заголовка «Авторизация». Просто добавьте HTTP-заголовок к запросу, например:

Authorization: Bearer access_token_here
person Nicolas Garnier    schedule 14.05.2012
comment
Вопрос безопасности — хороший момент. К сожалению, я не могу использовать заголовки без перезаписи операционной системы ;-) В качестве альтернативы я могу загрузить файл перед его показом, что, например. в случае с фильмом далеко не идеал... Спасибо! - person HDW Production; 14.05.2012
comment
Мы знаем, что это больная точка для многих разработчиков. Тем более, что проксирование на стороне файлового сервера не всегда является реалистичным вариантом (например, ваш пример с фильмами). Мы изучаем некоторые другие способы авторизации, например, с помощью файла cookie безопасного входа Google (чтобы, если пользователь вошел в систему, он имел бы доступ к файлу без использования OAuth 2.0). Но пока никаких обещаний. Это будет зависеть от приоритетов, а также вопросов безопасности. - person Nicolas Garnier; 14.05.2012