Nesta página, você aprenderá a adicionar suporte à API para autenticação de usuários a partir de aplicativos cliente usando o Cloud Endpoints Frameworks. Atualmente, só há suporte para clientes Android e JavaScript.
O Endpoints Frameworks oferece suporte à autenticação de usuários de aplicativos clientes que usam qualquer uma das seguintes metodologias:
Não importa o método de autenticação usado, para verificar a autenticação adequada para cada método de API, é preciso checar se há User, conforme descrito nas seções a seguir:
Pré-requisitos
Nesta página, presume-se que você já:
- criou um projetoGoogle Cloud . 
- Se você usa o JWT no cliente para enviar solicitações autenticadas à API, ele precisa estar no cabeçalho de autorização de uma solicitação HTTP e ter as seguintes reivindicações obrigatórias:
-  iss
-  sub
-  aud
-  iat
-  exp
 
-  
Autenticar com o Firebase Auth
Para oferecer suporte a chamadas de clientes que usam Firebase Auth:
- Importe a API do App Engine Cloud Endpoints na classe de API: - import endpoints
- Adicione um objeto emissor do Firebase referente a cada cliente ao decorador de API. Exemplo: - @endpoints.api( name='YOUR_API_NAME', version='VERSION_NUMBER', issuers={'firebase': endpoints.Issuer( 'https://securetoken.google.com/YOUR_PROJECT_ID, 'https://www.googleapis.com/service_accounts/v1/metadata/x509/securetoken@system.gserviceaccount.com')})- Substitua YOUR_API_NAMEpelo nome da API.
- Substitua VERSION_NUMBERpor sua versão da API, por exemplo,v1.
- Substitua o código>YOUR_PROJECT_ID pelo ID do projeto Google Clouddo cliente.
 
- Substitua 
- Em cada método de API em que você quer verificar a autenticação adequada, verifique se há um - Userválido e aumente- error 401se não houver, como mostra esse exemplo de definição de método:- user = endpoints.get_current_user() # If there's no user defined, the request was unauthenticated, so we # raise 401 Unauthorized.
- Implante a API do Endpoints . Reimplante a API do Endpoints sempre que adicionar novos clientes. 
Adicionar Firebase Authentication a um cliente
É possível adicionar o Firebase Authentication ao código, conforme descrito na documentação do Firebase. O cliente precisa ter um projeto do Google Cloud associado a ele, e o ID do projeto precisa estar listado na configuração do emissor do Firebase da API.
Como autenticar com Auth0
Para oferecer suporte a chamadas de clientes que usam Auth0:
- Importe a API do App Engine Endpoints na classe de API: - import endpoints
- Adicione um objeto emissor Auth0 ao decorador de API de cada cliente. Exemplo: - @endpoints.api( name='YOUR_API_NAME', version='VERSION_NUMBER', issuers={'auth0': endpoints.Issuer( 'https://YOUR_ACCOUNT_NAME.auth0.com', 'https://YOUR_ACCOUNT_NAME.auth0.com/.well-known/jwks.json')})- Substitua YOUR_API_NAMEpelo nome da API.
- Substitua VERSION_NUMBERpor sua versão da API, por exemplo,v1.
- Substitua YOUR_ACCOUNT_NAMEpelo nome da conta Auth0 usado para o cliente.
 
- Substitua 
- Em cada método de API em que você quer verificar a autenticação adequada, verifique se há um - Userválido e aumente- error 401se não houver, como mostra esse exemplo de definição de método:- user = endpoints.get_current_user() # If there's no user defined, the request was unauthenticated, so we # raise 401 Unauthorized.
- Implante a API e reimplante-a sempre que adicionar novos clientes. 
Adicionar a autenticação Auth0 a um cliente
Adicione a autenticação do Auth0 ao código, conforme descrito na documentação do Auth0. O cliente precisa estar listado na configuração do emissor Auth0 da API.
Como autenticar com tokens de ID do Google
Para oferecer suporte a chamadas de clientes que fazem a autenticação usando tokens de ID do Google:
- Receba um ID do cliente OAuth 2 para cada aplicativo cliente. O proprietário do aplicativo cliente precisa gerar o ID do cliente no console Google Cloud . Para instruções, consulte Como criar IDs do cliente. 
- Importe a API do App Engine Endpoints na classe de API: - import endpoints
- Especifique todos os IDs de clientes para os quais você quer conceder acesso à API no - allowed_client_ids. Especifique também os IDs dos clientes Android no campo- audiencesno decorador da API. Exemplo:- @endpoints.api( name='YOUR_API_NAME', version='VERSION_NUMBER', allowed_client_ids=ALLOWED_CLIENT_IDS, audiences=[ANDROID_AUDIENCE]) class AuthedGreetingApi(remote.Service): # ...- Substitua - ALLOWED_CLIENT_IDSpela lista de IDs de clientes OAuth 2 gerados a partir do projeto de cada cliente e substitua- ANDROID_AUDIENCEpela lista de IDs de clientes da Web do Android. O ID do cliente da Web é o ID do cliente com- .apps.googleusercontent.comanexado, por exemplo:- YOUR_CLIENT_ID.apps.googleusercontent.com.
- Em cada método de API em que você quer verificar a autenticação adequada, verifique se há um - Userválido e aumente- error 401se não houver, como mostra esse exemplo de definição de método:- user = endpoints.get_current_user() # If there's no user defined, the request was unauthenticated, so we # raise 401 Unauthorized.
- Implante a API do Endpoints . Reimplante a API do Endpoints sempre que adicionar novos clientes. 
Como adicionar a autenticação de tokens de ID do Google a um cliente
Para informações sobre como adicionar código de autenticação a clientes, consulte o seguinte:
A seguir
Para informações gerais sobre a autenticação de usuário e as diferenças entre esse método e a autorização de chave de API, consulte Quando e por que usar chaves de API.