Com a API do Sync Gateway, você pode se autenticar no lado do cliente como um usuário específico para replicar os dados aos quais esse usuário tem acesso. No caso da autenticação básica, o usuário já deve existir no banco de dados do Sync Gateway. Há duas maneiras de criar usuários:

  • No arquivo de configuração sob o usuários campo.
  • Na API REST do administrador.

Para fornecer uma tela de login e inscrição, é necessário configurar um servidor de aplicativos que lide com a criação de usuários, pois a porta de administração (4985) não é acessível ao público. Neste tutorial, você aprenderá a:

  • Use a API REST do administrador para criar um usuário.
  • Configure um servidor de aplicativos com o Node.js para gerenciar os usuários.
  • Crie uma tela de login e inscrição em um aplicativo Android de amostra para testar seu App Server.

Primeiros passos

Faça o download do Sync Gateway e descompacte o arquivo:

http://www.couchbase.com/nosql-databases/downloads#Couchbase_Mobile

Para este tutorial, você não precisará de um arquivo de configuração. Para obter propriedades básicas de configuração, você pode usar as opções da linha de comando. O binário a ser executado está localizado em ~/Downloads/couchbase-sync-gateway/bin/. Execute o programa com o comando -ajuda para ver a lista de opções disponíveis:

Para este tutorial, você especificará o nome do usuário, interface, bonito e url:

Para criar um usuário, você pode executar o seguinte no terminal:

OBSERVAÇÃO: O campo de nome no objeto JSON não deve conter espaços.

Isso deve retornar um 201 Criado código de status. Agora, faça login como esse usuário na porta padrão:

A resposta conterá um Set-Cookie e os detalhes do usuário no corpo.

Todos os SDKs do Couchbase Mobile têm um método para especificar o nome e a senha de um usuário para autenticação, portanto, você provavelmente não precisará se preocupar em fazer essa segunda solicitação de login.

Servidor de aplicativos

Nesta seção, você usará o /_usuário Ponto de extremidade da API REST do administrador publicamente para permitir que os usuários se inscrevam por meio do aplicativo.

Você usará o popular Expresso para tratar a solicitação de criação de um usuário e o módulo solicitação para fazer proxy de todos os outros tráfegos para o Sync Gateway.

Instale os seguintes módulos do Node.js:

Abrir um novo arquivo servidor.js e adicione o seguinte:

Veja a seguir o que está acontecendo, passo a passo:

  1. Instanciar uma nova instância do express e usar o bodyParser middleware somente se o caminho corresponder a registro. De fato, para todas as outras solicitações enviadas ao Sync Gateway, você precisa do corpo bruto da solicitação.
  2. Manuseie o /signup e usar o módulo de solicitação para criar o usuário na porta de administração.
  3. Proxy de todas as outras solicitações para o Sync Gateway.
  4. Inicie o servidor da Web Node.js na porta 8000.

De agora em diante, você usará a url abaixo para criar usuários por meio do aplicativo e iniciar réplicas push/pull:

http://localhost:8000

Crie outro usuário para testar se tudo está funcionando como esperado:

E para fazer login como esse usuário:

Na próxima seção, você criará um aplicativo Android simples com uma tela de login e inscrição para testar esses endpoints.

Aplicativo para Android

Abra o Android Studio e selecione Iniciar um novo projeto do Android Studio do Início rápido menu.

Nomear o aplicativo SmartHomedefina um domínio da empresa e um local do projeto adequados e clique em Próximo:

Na caixa de diálogo Target Android Devices (Dispositivos Android de destino), certifique-se de marcar Telefone e tabletdefina o SDK mínimo como API 22: Android 5.1 (Lollipop) para ambos, e clique em Próximo:

No dia seguinte Adicionar uma atividade ao Mobile selecione Add Atividade em branco e nomeie a atividade Atividade de boas-vindas:

Para criar as funcionalidades de registro e login, você usará duas dependências:

  • Biblioteca de suporte ao design do AndroidPara ter componentes de texto de entrada que sigam a especificação do Material Design.
  • OkHttppara lidar com as solicitações POST para /signup e /smarthome/_session.

Em build.gradleadicione essas dependências:

Em activity_welcome.xmlAdicione o seguinte LinearLayout dentro do RelativeLayout:

Observe que ambos os botões têm um onClick atributo. Mova o cursor do mouse sobre um dos métodos e use o botão alt + enter > Criar openLoginActivity(view) para criar esse método no WelcomeActivity:

Faça o mesmo com o Registrar-se botão.

Em seguida, crie duas novas classes e layouts XML usando o Atividade em branco modelo. Um deles deve ser chamado Login e o outro Registrar-se:

De volta ao openLoginActivity e openSignUpActivity adicione as seguintes intenções explícitas:

Alterar a classe pai de Login.java e SignUp.java de AppCompatActivity para Atividade.

Em res/values/styles.xml (v21), altere o tema principal para Theme.AppCompat.Light.DarkActionBar.

Aberto activity_sign_up.xml e adicione o seguinte dentro do RelativeLayout tag:

Agora, execute o aplicativo e selecione a opção Registrar-se você verá os elementos EditText do Material Design.

Crie uma nova classe java chamada Ajudante de rede com o seguinte:

Antes de poder fazer uma solicitação HTTP em seu aplicativo Android, você precisa primeiro adicionar o Rede permissão em AndroidManifest.xml:

Agora de volta ao SignUp.javaAdicione as seguintes propriedades:

Defina o EditText componentes no onCreate método:

Implementar o registro para enviar uma solicitação POST para :8000/assinatura com o nome e a senha fornecidos:

Execute o aplicativo e digite um nome e uma senha. Se a conta de usuário tiver sido criada com sucesso, você receberá de volta uma mensagem 201 Criado e deverá ver o usuário recém-criado no painel do administrador:

Por fim, vamos terminar com a tela de login. Em activity_login.xml, adicione o seguinte em RelativeLayout:

Adicione as propriedades a Login.java:

E faça a mesma operação de vinculação de exibição em onCreate:

Implementar o login método:

Execute o aplicativo e faça login com o nome de usuário e a senha que você escolheu anteriormente. Se a autenticação for bem-sucedida, você receberá de volta um código de status 200 OK:

OBSERVAÇÃO: Todos os SDKs do Couchbase Lite têm um método no Replicação que recebe um nome e uma senha e realiza a autenticação para você, de modo que você provavelmente não precisará fazer essa solicitação POST para /smarthome/_session.

Conclusão

Neste tutorial, você aprendeu a usar a API REST do Admin para criar usuários por meio de uma tela de inscrição em um aplicativo Android.

Autor

Postado por James Nocentini, redator técnico, celular, Couchbase

James Nocentini é o redator técnico responsável pela documentação do Couchbase Mobile. Anteriormente, ele trabalhou como Developer Advocate e, antes disso, como desenvolvedor front-end da HouseTrip. Ele também gosta de escrever tutoriais sobre Android para raywenderlich.com em seu tempo livre.

Um comentário

  1. Miguel Angel Diaz Lopez abril 25, 2017 em 12:58 pm

    Post incrível! Tenho uma dúvida, como posso conectar o Couchbase Sync Gateway a outro repositório como active directory, etc. ou existe uma maneira de obter um Single Sign On entre o Sync Gateway e o Couchbase Server?

Deixar uma resposta