Unico IDCloud - DevCenter
Página inicialAutenticaçãoAPIsSDKs
Portuguese (Brazil)
Portuguese (Brazil)
  • Introdução
  • SOBRE O IDCLOUD
    • Unico IDCloud
    • Capacidades
    • Meios de Integração
    • Capacidades e Meios de Integração
  • INTEGRAÇÃO
    • Guia de início rápido
    • Autenticação
      • Criando uma Conta de Serviço
      • Preparando para fazer uma requisição autenticada à API
      • Recursos adicionais
        • Exemplo em Javascript
        • Erros de autenticação
        • Postman Collection
    • Integração by Unico
      • Visão Geral
      • API
        • API Reference
          • Criação do Processo
            • Criação de processos separados por flows
          • Consultar Resultado do Processo
          • Obter Selfie do Usuário
          • Obter Conjunto Probatório
            • Especificação do conjunto probatório
          • Obter Documento Assinado
          • Obter Conjunto Probatório do Documento Assinado
        • Erros
      • Controlando a experiência
        • Redirecionando o usuário
        • SDK
        • QR Code
        • Personalizações
      • Recursos adicionais
        • Postman Collection
        • PoCs disponíveis
    • Integração by Client
      • Visão Geral
      • API
        • API Reference
          • Prova de vida + Verificação de Identidade + Alerta de comportamento
          • Prova de vida + Verificação de Identidade + Alerta de comportamento + Score de risco
          • Prova de vida + Validação 1:1 + Alerta de comportamento
          • Reaproveitamento e captura de documentos
        • Cenários de response
        • Erros
        • Recursos adicionais
          • Postman Collection
      • Padrão de captura (sem SDK)
    • Webhook
    • SDK
      • Visão Geral
      • Política de atualizações
      • Integração SDKs
        • SDK Android
          • Guia de instalação
          • Guia de uso e integração
            • Captura de Selfie
            • Captura de documento
          • Guia de tratamento de erros
          • Personalização Android
          • Solução de problemas
          • Release notes
        • SDK iOS
          • Guia de instalação
          • Guia de uso e integração
            • Captura de Selfie
            • Captura de documento
          • Guia de tratamento de erros
          • Personalização iOS
          • Solução de problemas
          • Release notes
        • SDK Flutter
          • Guia de instalação
          • Guia de uso e integração
            • Captura de Selfie
            • Captura de documento
          • Guia de tratamento de erros
          • Personalização Flutter
          • Solução de problemas
          • Release notes
        • SDK Web
          • Guia de instalação
          • Guia de uso e integração
            • Captura de Selfie
            • Captura de documento
            • Acessibilidade
          • Guia de tratamento de erros
          • Personalização Web
          • Release notes
      • Recursos adicionais
        • PoCs disponíveis
        • Melhores práticas de implementação da SDK
  • help & faq
    • Glossário
    • FAQs
      • FAQ IDCloud
      • FAQ Autenticação
      • FAQ SDK
    • Central de ajuda
Fornecido por GitBook

Institucional

  • Sobre nós

Copyright © 2024 unico. All rights reserved

Nesta página

Isto foi útil?

Exportar como PDF
  1. INTEGRAÇÃO
  2. Integração by Unico
  3. Controlando a experiência

Redirecionando o usuário

Nesta seção, você encontrará como informações redirecionar um usuário em suas aplicações na experiência do by Unico

AnteriorControlando a experiênciaPróximoSDK

Atualizado há 5 meses

Isto foi útil?


O campo userRedirectUrl é usado para direcionar o usuário. Esse campo é recebido na resposta de sucesso da criação do processo ao realizar a requisição .

Aqui você encontrará as 3 formas de gerenciar a experiência do usuário em suas aplicações:

(1) Usando Redirect:

Recomenda-se seguir os seguintes passos:

  • Em seu fluxo comum (que está inserido o Cadastro by Unico) você irá redirecionar o cliente para o link gerado através da API;

  • Após isso o cliente de dentro da plataforma realiza os procedimentos necessários para continuar o fluxo;

  • Quando concluído, ele é redirecionado para a sua página (utilizando o redirectUrl passado na criação do processo).

(2) Usando window.open():

A opção window.open() consiste em abrir uma nova aba do navegador do usuário para que ele possa completar o processo. Ao final essa aba é fechada e redirecionada para sua aplicação.

Para isso é recomendado:

  • Seguir a documentação pública sobre isso, que se encontra ;

  • Monitorar se houve alteração de URL (para a redirectUrl) e então fechar a aba utilizando window.close().

Passo 1: Usando CustomTabs para integração

1 - Insira no app/build.gradle a dependência necessária para o uso de CustomTabs:

implementation("androidx.browser:browser:1.5.0")

Passo 2: Abrindo uma CustomTab

import android.net.Uri
import androidx.activity.ComponentActivity
import androidx.browser.customtabs.CustomTabsClient
import androidx.browser.customtabs.CustomTabsIntent

class CustomTabActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)

       openCustomTab(<URL_CBU>)
    }

    fun openCustomTab(url: String) {
        val builder = CustomTabsIntent.Builder()
        val customTabsIntent = builder.build()
        customTabsIntent.launchUrl(this, Uri.parse(url))
    }
}

Passo 3: Modificando AndroidManifest

Coloque no AndroidManifest.xml as permissões e intents necessários na Activity que deseja receber a callback_uri. É necessário incluir o atributo android:launchMode="singleTop" como também a tag <data> informando os dados da URI.

<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-permission android:name="android.permission.CAMERA"/> 
// necessário ter as permissões de câmera e geolocalização 

<activity
    android:name=".CustomTabActivity"
    android:exported="true"
    android:label="@string/app_name"
    android:theme="@style/Theme.Customtabs"
    android:launchMode="singleTop">

    <intent-filter android:label="Custom Tab">
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <!-- scheme e host são os dados fornecidos na criação de um processo no campo callback_uri
        callback_uri: "foobar://success?code=1234" -->
        <data android:scheme="foobar" android:host="success"/>
    </intent-filter>

</activity>

As seguintes permissões são necessárias para funcionar corretamente:

  • Câmera;

  • Geolocalização.

Passo 4: Pegando informações de retorno

Para pegar as informações de redirect com os dados fornecidos, você pode usar o seguinte código no método onNewIntent da sua Activity:

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)

    val url = intent.data
    val scheme = url.scheme // "foobar"
    val host = url.host // "success"
    val code = url.getQueryParameter("code") // "1234"
}

Passo 1: Criar o controlador de autenticação

1 - O primeiro passo é criar o controlador de autenticação, e, para isso crie uma classe chamada UnicoAuthenticationController (ou como preferir chamar).

2 - Na sequência, importe o framework AuthenticationServices no topo da classe.

3 - Declare a classe como NSObject e implemente o protocolo ASWebAuthenticationPresentationContextProviding.

  • O resultado deve ser:

import AuthenticationServices

class UnicoAuthenticationController: NSObject, ASWebAuthenticationPresentationContextProviding {
    func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
           if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
               if let mainWindow = windowScene.windows.first {
                   return mainWindow
               }
           }
           return ASPresentationAnchor()
       }
}

Passo 2: Implementar a autenticação

1 - Abra o arquivo onde você executa a autenticação e adicione as importações necessárias (como exemplo, o ContentView.swift é usado).

import SwiftUI
import AuthenticationServices

2 - Para controlar o estado do fluxo é preciso criar a propriedade @State.

@State private var finished = false

3 - Crie uma instância da classe UnicoAuthenticationController fora do corpo da estrutura ContentView.

let unicoController = UnicoAuthenticationController()

4 - Para a validação do processo, crie uma função chamada redirectUser.

func redirectUser() {
        guard let url = URL(string: "URL_AUTHENTICATION") else { return }

        var session: ASWebAuthenticationSession?
        session = ASWebAuthenticationSession(url: url, callbackURLScheme: "BUNDLE") { callbackURL, error in
            guard callbackURL != nil else {
                if let error = error {
                    return print("Erro durante o processo: \(error.localizedDescription)")
                }
                return
            }

            // Processa o URL de callback para verificar se o processo foi finalizado
            session?.cancel()
            finished = true
        }

        session?.presentationContextProvider = unicoController
        session?.prefersEphemeralWebBrowserSession = true
        session?.start()
    }

Ambientes:

Lembre-se de alterar a url URL_AUTHENTICATION para a URL de autenticação recebida em seu processo e também o callbackURLScheme BUNDLE para o redirect informado na criação do processo (o uso do Bundle Identifier de seu aplicativo é recomendado).

Autenticação única:

É importante setar prefersEphemeralWebBrowserSession para true para garantir uma autenticação única por processo.

Também é possível utilizar o link gerado pelo by Unico em frameworks híbridos. Para isso, você pode criar uma bridge entre o framework utilizado com o nativo e seguir como sugerimos na documentação ou utilizar de alguma biblioteca que disponibilize essas opções de integração.

A integração da WebView na sua aplicação é de total responsabilidade do cliente, uma vez que esta funcionalidade não é oferecida como parte das bibliotecas ou SDKs da Unico. Por conta disso, não oferecemos suporte técnico para dúvidas ou problemas relacionados à implementação da WebView em seu aplicativo. Para obter orientações sobre a configuração, recomendamos consultar a documentação oficial da tecnologia utilizada em seu projeto (por exemplo, React Native, Flutter, etc).


Dúvidas?

Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .

CreateProcess
aqui
​
Central de Ajuda