@malvo/react-native-connect
embute o widget hospedado do Malvo Connect ({baseUrl}/connect?token=...) dentro de
uma react-native-webview
e converte os eventos postMessage do widget em callbacks JavaScript.
Toda a conectividade fala com um único host de API,
https://api.malvo.io. O
widget e o dashboard ficam em https://malvo.io. Não há iniciação de
pagamento (ITP) — o widget só conduz consentimentos de agregação de dados
(Items).Pré-requisitos
O único dado obrigatório é um Connect Token gerado pelo seu backend. OclientId/clientSecret ficam apenas no servidor e nunca devem ir para o app.
A cadeia de geração é:
1
Autentique o cliente
POST /auth com clientId + clientSecret no seu backend devolve um
apiKey (TTL de 2h).2
Gere o Connect Token
POST /connect_token (com X-API-KEY: <apiKey>) devolve um accessToken
com TTL de 30 minutos.3
Entregue o token ao app
O app recebe esse
accessToken e o passa em connectToken. Gere um token
novo a cada montagem do widget.Instalação
react-native e react-native-webview são peer dependencies. Siga o setup de
plataforma do react-native-webview — no iOS rode a instalação de pods:
Uso
Renderize o componenteMalvoConnect dentro de um <Modal> para apresentá-lo em
tela cheia:
Sandbox em desenvolvimento
UseincludeSandbox={__DEV__} para exibir os conectores de sandbox apenas em
builds de desenvolvimento. Não existe um domínio separado de sandbox: ela é
opt-in por requisição.
Fluxo de atualização (update item)
Para reautenticar um item existente (LOGIN_ERROR, WAITING_USER_INPUT ou
consentimento OUTDATED), gere um update token com itemId no corpo do
POST /connect_token e passe esse mesmo id em updateItem:
Open Finance / OAuth
Por padrão, o consentimento bancário roda dentro da WebView e retoma o fluxo automaticamente via/connect/finish — sem setup extra.
Para instituições que recusam WebViews embarcadas, configure o URI completo em
oauthRedirectUri e registre o deep link correspondente:
1
Passe o oauthRedirectUri ao gerar o token
No
POST /connect_token do seu backend, informe
options.oauthRedirectUri casando com o seu scheme, por exemplo
malvo://oauth-callback.2
Defina oauthRedirectUri no componente
Passe o mesmo URI completo ao
MalvoConnect, por exemplo
oauthRedirectUri="malvo://oauth-callback".3
Registre o scheme nativamente
Declare o scheme no iOS (
CFBundleURLTypes) e no Android (intent-filter),
como abaixo.malvoFlowId reservado,
acrescentado pelo backend, coincida com o connectTokenId do Connect Token atual antes de
retomar a rota autenticada /connect?token=...&resumeItemId=.... Se o processo foi recriado, o
host precisa restaurar com segurança o mesmo Connect Token ainda válido; o SDK não persiste o
token e o callback nunca carrega bearer. O initial link só é reivindicado pela instância cujo
fluxo corresponde. A bridge nativa também exige malvoBridgeNonce igual ao claim separado
bridgeNonce do token e remove esse campo antes dos callbacks. Bearer, code bancário e
malvoFlowId nunca atravessam a bridge JavaScript.
O mesmo
oauthRedirectUri precisa ser enviado pelo backend no objeto options
do POST /connect_token e pelo app ao componente. oauthRedirectScheme continua
disponível apenas para compatibilidade e valida somente o scheme; prefira sempre
o URI completo. Não acrescente malvoFlowId: ele é gerado e controlado pela Malvo.Props
string
required
O Connect Token de 30 minutos gerado pelo seu backend. Única prop obrigatória.
string
default:"https://malvo.io"
Origem que serve o widget hospedado.
boolean
Exibe conectores de sandbox (use
__DEV__).string
Id de um item para o fluxo de atualização. O
connectToken deve ter sido
gerado com esse mesmo itemId.string
URI completo do app (ex.:
malvo://oauth-callback) para validar e capturar o
retorno do OAuth aberto no navegador do sistema.string
Compatibilidade legada baseada somente no scheme. Não use em novas integrações.
Callbacks
Próximos passos
- Connect Widget — visão geral e opções completas.
- Expo — usar o mesmo pacote em apps Expo.
- Webhooks — a fonte da verdade para persistir conexões.