/meetapenguim_server

Meet a penguim Jersey Backend

Primary LanguageJava

#Login Social do Banco do Brasil

O login social do Banco do Brasil permite que aplicativos de parceiros façam transações com o Banco do Brasil. Antes de utilizar esse SDK é importante que você faça o cadastro do seu aplicativo parceria junto ao Banco do Brasil. O processo de cadastro pode ser feito em XXXXXXXX

Para começar adicione a seguinte dependência ao seu projeto:

dependencies {
  …
  compile 'br.com.bb.loginbb:bank-login:0.0.1'
  …
}

Lembrando que necessário que você utilize o seguinte repositório de pacotes no seu projeto.

allprojects {
  repositories {
        …
        maven {
          url 'https://dl.bintray.com/oximer/maven/'
        }
	      …
	}
}

Após adicionar tal dependência, vamos entender como funciona o SDK. O fluxo é baseado em OAuth2.

##Recebendo credenciais de instalação

Ao cadastrar seu aplicativo no Banco do Brasil, você receberá um PartnerId e um PartnerSecret em nosso portal web. Essas credenciais serão utilizadas para que você gere credenciais de instalação para seu usuário.

Assim cada instalação do seu aplicativo terá um InstallationID e InstallationSecret. Existe uma relação parentesco entre as credenciais de instalação que você gerar e sua credencial de parceiro.

  • PartnerID/PartnerSecret 1
    • InstallationID/InstallationSecret 1
    • InstallationID/InstallationSecret 2

Você deve utilizar nossa API XXXX para geração de credenciais.

Exemplo de geração de InstallationID/InstallationSecret.

Inicilizando seu SDK

Existem várias maneiras para inicializar o SDK, uma alternativa interessante é criar uma classe que estenda sua aplicação.

BBLogin.initialize(getApplicationContext());

Continue a inicialização definindo algumas informações básicas importantes para o funcionamento do SDK.

BBLogin.setPushCode("987654321");
BBLogin.setRedirectUrl("loginbb://auth");
BBLogin.setInstallationCredentials(“InstallationId”,”InstallationSecret”)

Caso, seu aplicativo esteja em fase de desenvolvimento e você ainda não possua backend funcional, você pode definir o seu PARTNER_ID and PARTNER_SECRET no SDK. Entretanto, você não deve publicar seu aplicativo dessa maneira. Isso acabaria por expor suas credenciais, permitindo que outras pessoas gerem credenciais de instalação vinculados ao seu aplicativo.

BBLogin.setPartnerId("7da5626c-050a-4c14-874d-6c188f8abdf");
BBLogin.setPartnerSecret("7b244153-35ea-4d79-810c-ebd8cc921573"); 

Adicione o Botão de login

Para adicionar um botão de login é bastante simples.

<br.com.bb.loginbb.ui.BBButton
android:id="@+id/bbbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login_button"
custom:scope="consulta"/>

Você pode definir o atribute scope conforme a necessidade de sua aplicação.

Definindo o BBLoginCallbackManager

Após adicionar um botão de login na tela, você deve definir o BBLoginCallbackManager da sua aplicação.

mCallbackManager = new BBLoginCallbackManager();
mCallbackManager.registerCallback(new BBLoginCallback() {
    @Override
    public void onSuccess(AccessToken accessToken) {
    //On Success.
    }
    @Override
    
    public void onCancel() {
    //Login cancelled by the user.
    }
    @Override
    public void onError(BBLoginException exception) {
    //Error during the login.
    }
});

mButton.setLoginCallbackManager(mCallbackManager);

Access token

Em caso de sucesso você receberá access token seguindo padrão do OAuth 2.0 O Access tem validade e você deve checar se ele está expirado antes de utilizá-lo.

Refresh Token (Atualizando seu token expirando)

Caso seu token esteja expirado, você pode usar a classe RefreshAccessTokenRequest para atualizar seu access token. Caso seu refresh token também esteja expirado será necessário proceder o processo de autorização novamente (login).

Explore o example existente nesse projeto para entender um pouco funcionamento do SDK.

Aplicação de Teste

PushCode = 12345678
RedirectUrl = loginbb://auth
PartnerId = 7da5626c-050a-4c14-874d-6c188f8abdf
PartnerSecret = 7b244153-35ea-4d79-810c-ebd8cc921573