Клиентская библиотека 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 будет проще и менее подвержена ошибкам.