Клиентская библиотека API Google для .NET использует файлы client_secrets.json
для хранения client_id
, client_secret
и других параметров OAuth 2.0.
Файл client_secrets.json
— это файл в формате JSON, содержащий идентификатор клиента, секрет клиента и другие параметры OAuth 2.0. Вот пример файла client_secrets.json
для веб-приложения:
{ "web": { "client_id": "asdfjasdljfasdkjf", "client_secret": "1912308409123890", "redirect_uris": ["https://www.example.com/oauth2callback"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token" } }
Вот пример файла client_secrets.json
для установленного приложения:
{ "installed": { "client_id": "837647042410-75ifg...usercontent.com", "client_secret":"asdlkfjaskd", "redirect_uris": ["http://localhost"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token" } }
Формат определяет один из двух типов идентификаторов клиентов:
-
web
: веб-приложение. -
installed
: Установленное приложение.
web
и installed
подобъекты имеют следующие обязательные элементы:
-
client_id
(строка): идентификатор клиента. -
client_secret
(строка): секрет клиента.
Все остальные члены этого файла являются необязательными, и клиентская библиотека .NET их не использует.
Мотивация
Традиционно поставщики конечных точек OAuth 2.0 ожидали, что те, кто использует их услуги, скопируют и вставят идентификатор клиента и секрет клиента со страницы регистрации в рабочий код. Этот метод подвержен ошибкам и дает неполное представление об информации, необходимой для работы OAuth 2.0. (OAuth 2.0 также требует знания всех конечных точек и настройки URI перенаправления.) Если поставщики услуг предоставляют загружаемые файлы client_secrets.json
, а клиентские библиотеки готовы использовать эти файлы, то реализация OAuth 2.0 будет проще и менее подвержена ошибкам.