A biblioteca de cliente das APIs do Google para .NET usa arquivos client_secrets.json
para armazenar client_id
, client_secret
e outros parâmetros do OAuth 2.0.
client_secrets.json
é um arquivo no formato JSON que contém
o ID e a chave secreta do cliente, além de outros parâmetros do OAuth 2.0.
Confira um exemplo de arquivo client_secrets.json
para um aplicativo da Web:
{ "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" } }
Este é um exemplo de arquivo client_secrets.json
para um aplicativo instalado:
{ "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" } }
O formato define um dos dois tipos de ID do cliente:
web
: aplicativo da Web.installed
: app instalado.
Os subobjetos web
e installed
têm os seguintes membros obrigatórios:
-
client_id
(string): o ID do cliente. -
client_secret
(string): a chave secreta do cliente.
Todos os outros membros desse arquivo são opcionais e não são usados pela biblioteca de cliente .NET.
Motivação
Tradicionalmente, os provedores de endpoints OAuth 2.0 esperam que os usuários dos serviços copiem e colem o ID e a chave secreta do cliente de uma página de registro em um código em funcionamento.
Esse método é propenso a erros e fornece uma imagem incompleta
das informações necessárias para que o OAuth 2.0 funcione.
O OAuth 2.0 também requer conhecer todos os endpoints
e configurar um URI de redirecionamento.
Se os provedores de serviços disponibilizarem arquivos client_secrets.json
para download e as bibliotecas de cliente estiverem preparadas para consumir esses arquivos, a implementação do OAuth 2.0 será mais fácil e menos suscetível a erros.