Visão geral da API Users para Python 2

Com a API Users um aplicativo pode:

  • detectar se o usuário atual fez login;
  • redirecionar o usuário para a página de login correta;
  • solicitar que o usuário do aplicativo crie uma nova Conta do Google, caso ainda não tenha uma.

Quando um usuário está conectado ao aplicativo, o app pode acessar o endereço de e-mail, além de um código de usuário único. É possível detectar se o usuário atual é um administrador, também chamado de "usuário administrador", o que facilita a implementação de áreas exclusivas do administrador do aplicativo.

Autenticação de usuário no Python 2

No exemplo a seguir, um usuário que se conectou ao aplicativo recebe uma mensagem personalizada de saudação e um link para sair. Se o usuário não estiver conectado, o aplicativo oferece um link para a página de login das Contas do Google.

Primeiro, importe o módulo google.appengine.api.users.

from google.appengine.api import users

Em seguida, use-o para buscar informações do usuário:

user = users.get_current_user()
if user:
    nickname = user.nickname()
    logout_url = users.create_logout_url('/')
    greeting = 'Welcome, {}! (<a href="{}">sign out</a>)'.format(
        nickname, logout_url)
else:
    login_url = users.create_login_url('/')
    greeting = '<a href="{}">Sign in</a>'.format(login_url)

Login e acesso de administrador obrigatório com app.yaml

Se você tiver páginas que obriguem o usuário a fazer login para acessá-las, crie uma restrição no arquivo app.yaml. Se um usuário acessa um URL configurado para exigir login, mas não está conectado, esse usuário é redirecionado pelo App Engine para a página de login do Google apropriada e levado de volta ao URL do aplicativo depois de fazer login ou se registrar com sucesso.

A configuração do gerenciador também pode exigir que o usuário seja um administrador registrado no aplicativo, ou seja, o usuário precisa ter papel primário de Visualizador, Editor ou Proprietário ou papel predefinido de Administrador de app do App Engine. Isso facilita a construção de seções exclusivas para administradores do site, sem a necessidade da implementação de um mecanismo de autorização separado.

Para saber como configurar a autenticação de URLs, veja como exigir status de administrador ou login na referência do app.yaml.

Opções de autenticação

O aplicativo pode autenticar usuários usando uma destas opções:

  • uma Conta do Google
  • uma conta no domínio do G Suite

Como escolher uma opção de autenticação

Depois de criar o aplicativo, é possível escolher a opção de autenticação que você quer usar. Por padrão, o aplicativo usará as Contas do Google para autenticação. Para escolher outra opção, como o domínio do G Suite, acesse a página de configurações do projeto no Console do Google Cloud Platform e clique em Editar. No menu suspenso Autenticação do Google, selecione o tipo de autenticação preferida e clique em Salvar.

Como fazer login e logout

Um aplicativo pode detectar se o usuário fez login com a opção de autenticação escolhida do aplicativo. Se o usuário não estiver conectado, ele poderá ser direcionado pelo aplicativo para as Contas do Google para fazer login ou criar uma nova conta do Google. O aplicativo recebe o URL da página de login ao chamar um método da API Users. O aplicativo pode exibir esse URL como um link ou pode gerar um redirecionamento HTTP para o URL quando o usuário visita uma página que requer autenticação.

Se o aplicativo usa Contas do Google ou G Suite para autenticação, o nome do aplicativo aparece na página de login quando o usuário faz login no aplicativo. O nome mostrado é o nome do aplicativo que você especificou ao registrar o aplicativo. É possível alterar esse nome no campo Nome do produto mostrado aos usuários da página Credenciais no Console do Google Cloud Platform.

Depois que o usuário faz login ou cria uma conta do Google, ele é redirecionado para o aplicativo novamente. O aplicativo fornece o URL de redirecionamento ao método que gera o URL de login.

A API Users também inclui um método para gerar um URL para fazer logout do aplicativo. O URL de logout cancela a autenticação do usuário no aplicativo e o redireciona novamente ao URL do aplicativo sem exibir nada.

Um usuário não estará conectado em um aplicativo até que o aplicativo solicite o login e o usuário insira o endereço de e-mail e a senha da conta. Isso é válido mesmo se o usuário tiver feito login em outros aplicativos usando a Conta do Google.

Como acessar informações da conta

Enquanto o usuário estiver conectado no aplicativo, este poderá acessar o endereço de e-mail do usuário em todas as solicitações que ele fizer no aplicativo. O aplicativo também pode acessar o código de um usuário e identificá-lo exclusivamente, mesmo se o usuário alterar o endereço de e-mail da conta.

O aplicativo também pode determinar se o usuário atual é um administrador do aplicativo. Um usuário administrador é qualquer usuário que tenha papel primário de Visualizador, Editor ou Proprietário ou o papel predefinido de Administrador de app do App Engine. É possível usar esse recurso para criar recursos administrativos para o aplicativo, ainda que você não autentique usuários. As APIs Go, Java, PHP e Python facilitam a configuração de URLs como "somente administrador".

Users e o armazenamento de dados

A API do serviço Usuários pode retornar as informações do usuário atual como um objeto User. Os objetos User podem ser salvos como um valor de propriedade no armazenamento de dados. No entanto, é altamente recomendável evitar isso, pois esse tipo de armazenamento inclui o endereço de e-mail junto com o ID exclusivo do usuário. Se um usuário alterar o endereço de e-mail e você comparar o User antigo e armazenado com o novo valor de User, eles não corresponderão. Em vez disso, use o valor User do ID do usuário como o identificador exclusivo estável do usuário.

Contas do Google e o servidor de desenvolvimento

O servidor de desenvolvimento simula o sistema das Contas do Google usando uma tela de login fictícia. Quando o aplicativo chama a API Users para conseguir o URL da tela de login, a API retorna um URL especial do servidor de desenvolvimento que solicita um endereço de e-mail, mas não uma senha. Digite qualquer endereço de e-mail nessa solicitação e o aplicativo se comportará como se você tivesse feito login usando uma conta com esse endereço.

A tela de login fictícia também inclui uma caixa de seleção que indica se a conta fictícia é de administrador, ou seja, se a conta tem papel primário de Visualizador, Editor ou Proprietário, ou papel predefinido de Administrador de app do App Engine. Se você marcar essa caixa de seleção, o aplicativo se comportará como se você tivesse feito login usando uma conta de administrador.

Da mesma forma, a Users API retorna um URL de logout que cancela o login fictício.

O código exclusivo de um objeto User no servidor de desenvolvimento é calculado a partir do endereço de e-mail. Dois endereços de e-mail exclusivos sempre representam dois usuários exclusivos no servidor de desenvolvimento.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2