A API Users permite que uma aplicação:
- Detetar se o utilizador atual tem sessão iniciada.
- Redirecionar o utilizador para a página de início de sessão adequada para iniciar sessão.
- Peça ao utilizador da aplicação para criar uma nova Conta Google se ainda não tiver uma.
Enquanto um utilizador tem sessão iniciada na aplicação, a app pode aceder ao endereço de email do utilizador.
A app também pode detetar se o utilizador atual é um administrador (também denominado "utilizador administrador"), o que facilita a implementação de áreas da app apenas para administradores. Para ver o conteúdo do pacote user
, consulte a user
referência do pacote.
Autenticação de utilizadores no Go 1.11
O exemplo seguinte saúda um utilizador que iniciou sessão na app com uma mensagem personalizada e um link para terminar sessão. Se o utilizador não tiver sessão iniciada, a app oferece um link para a página de início de sessão das Contas Google.
Impor o início de sessão e o acesso de administrador com o app.yaml
Se tiver páginas que exijam que o utilizador tenha sessão iniciada para aceder, pode aplicar esta restrição no seu ficheiro app.yaml
.
A configuração do controlador também pode exigir que o utilizador seja um administrador registado para a aplicação, ou seja, o utilizador tem de ter a função de visualizador, editor, proprietário ou administrador do App Engine. Isto facilita a criação de secções do site apenas para administradores, sem ter de implementar um mecanismo de autorização separado.
Para saber como configurar a autenticação para URLs, veja como exigir o início de sessão ou o estado de administrador na referência app.yaml
.
OAuth em Go
Além dos modos de autenticação de utilizadores padrão, os utilizadores podem ser identificados na sua app através do OAuth. O OAuth é um protocolo que permite a um utilizador conceder a um terceiro uma autorização limitada para aceder a uma aplicação Web em seu nome, sem partilhar as respetivas credenciais (nome de utilizador e palavra-passe) com o terceiro. Pode encontrar mais informações sobre a API OAuth, incluindo a interação exigida pelos clientes, na documentação do OAuth.
Tenha em atenção que a utilização do OAuth para identificar os seus utilizadores é completamente ortogonal aos modos de autenticação de utilizadores padrão. Por exemplo, as páginas marcadas com login: required
ou login: admin
recusam-se a carregar se o utilizador estiver autenticado apenas através do OAuth.
Segue-se um exemplo simples de acesso às informações do utilizador do OAuth num controlador de pedidos Go:
Opções de autenticação
A sua app pode autenticar utilizadores através de uma destas opções:
- Uma Conta Google
- Uma conta no seu domínio do Google Workspace
Escolher uma opção de autenticação
Depois de criar a app, pode escolher a opção de autenticação que quer usar. Por predefinição, a sua app usa Contas Google para autenticação. Para escolher outra opção, como o domínio do Google Workspace, aceda à página de definições do seu projeto na Google Cloud consola e clique em Editar. No menu pendente Autenticação Google, selecione o tipo de autenticação pretendido e, de seguida, clique em Guardar.
Iniciar e terminar sessão
Uma aplicação pode detetar se um utilizador iniciou sessão na app com a opção de autenticação escolhida pela app. Se o utilizador não tiver sessão iniciada, a app pode direcioná-lo para as Contas Google para iniciar sessão ou criar uma nova Conta Google. A app obtém o URL da página de início de sessão chamando um método da API Users. A app pode apresentar este URL como um link ou pode emitir um redirecionamento HTTP para o URL quando o utilizador visita uma página que requer autenticação.
Se a sua app usar Contas Google ou o Google Workspace para autenticação, o nome da sua aplicação aparece na página de início de sessão quando o utilizador inicia sessão na sua aplicação. O nome apresentado é o nome da aplicação que especificou quando registou a aplicação. Pode alterar este nome no campo Nome da aplicação da página Credenciais da Google Cloud consola Google Cloud .
Assim que o utilizador tiver iniciado sessão ou criado uma Conta Google, é redirecionado de volta para a sua aplicação. A app fornece o URL de redirecionamento ao método que gera o URL de início de sessão.
A API Users inclui um método para gerar um URL para terminar sessão na app. O URL de saída anula a autenticação do utilizador na app e, em seguida, redireciona-o de volta para o URL da app sem apresentar nada.
Um utilizador não tem sessão iniciada numa aplicação até que a aplicação lhe peça para o fazer e introduza o endereço de email e a palavra-passe da respetiva conta. Isto é verdade mesmo que o utilizador tenha iniciado sessão noutras aplicações com a respetiva Conta Google.
Aceder às informações da conta
Enquanto um utilizador tem sessão iniciada numa app, a app pode aceder ao endereço de email da conta para cada pedido que o utilizador faz à app. A app também pode aceder a um ID do utilizador que identifica o utilizador de forma exclusiva, mesmo que o utilizador altere o endereço de email da respetiva conta.
A app também pode determinar se o utilizador atual é um administrador da app. Um utilizador administrador é qualquer utilizador que tenha a função de leitor, editor, proprietário ou administrador do App Engine. Pode usar esta funcionalidade para criar funcionalidades administrativas para a app, mesmo que não autentique outros utilizadores. As APIs Go, Java, PHP e Python facilitam a configuração de URLs como "apenas para administradores".
Contas Google e o servidor de programação
O servidor de desenvolvimento simula o sistema de Contas Google através de um ecrã de início de sessão falso. Quando a sua aplicação chama a API Users para obter o URL do ecrã de início de sessão, a API devolve um URL de servidor de desenvolvimento especial que pede um endereço de email, mas não uma palavra-passe. Pode escrever qualquer endereço de email neste comando e a app vai comportar-se como se tivesse sessão iniciada com uma conta com esse endereço.
O ecrã de início de sessão falso também inclui uma caixa de verificação que indica se a conta falsa é um administrador, ou seja, se a conta tem a função de visualizador, editor, proprietário ou administrador do App Engine. Se selecionar esta caixa, a app vai comportar-se como se tivesse sessão iniciada com uma conta de administrador.
Da mesma forma, a API Users devolve um URL de saída que cancela o início de sessão falso.