Minhas Atividades

Central de Atendimento

Como implementar oauth

Desenvolvendo  o oAuth

                                                                                                                                                             

App recebe o grantcode que é cadastrado a uri pelo suporte marketplace API.

O Grant Code é um código intermediário emitido pelo Marketplace que garante que o usuário interessado na obtenção do Access Token passou pelo processo de autenticação com sucesso.

Essa é a primeira interação que sua aplicação fará para obtenção do token de acesso.

https://lojista.ehub.com.br/oauth-api/authorize?client_id=suporte-api&redirect_url=[URL para recebimento do Grant Code]

 

* a url de recebimento do grantcode para teste pode ser https://www.qualquersite.com , onde retorna o grantcode logo ao final da url.

 

Na sequência irá abrir uma tela de autorização para o lojista onde o lojista ira entrar com seu login e senha do admin seller.

 

No momento em que for apertar a permissão

Esse é o exemplo do grantcode que é recebido depois da autorização do lojista

http://urldeexemplo.com.br/callback?code=34k4a6h

Depois disso sua app irá fazer um post para obtenção do token com esse grantcode que no servidor do marketplace já tem todas informações do lojista e da app que solicitou.

POST

    https://api.cnova.com/oauth/access_token

 

HEADER

    Content-Type: application/json

    X-Authorization: Basic base64(client_id:client_secret)

 

REQUEST BODY

{

    // Deve ser passado o mesmo grant_code que foi obtido

    "code": "34k4a6h",

    "grant_type": "authorization_code"

}

 

RESPONSE BODY

{

    // O access_token gerado deve ser armazenado para ser utilizado nas chamadas à API

    "access_token": "222rkya88",

    "token_type": "access_token"

}

 

 

OBSERVAÇÃO IMPORTANTE:
As informações passadas para o campo X-Authorization devem ser encodadas em Base 64. Assim, para gerar o header Authorization do par client_id: aC2yaac23 e client_secret: 1bhS45TT, deve ser gerado o base64 da string "aC2yaac23:1bhS45TT", que resultará na chave YUMyeWFhYzIzOjFiaFM0NVRU

 

Para criptografar na base64 no gitbash   echo -n "suporte-api:1t3mSxo6eSOr" | base64.exe

 

 

Erros possíveis

 

 

tipo de erro 400

 

{"result":"failure","errors":[{"path":null,"type":null,"message":"Could not read document: Can not instantiate value of type [simple type, class com.sensedia.authorization.model.AccessTokenRequest] from String value ('code'); no single-String constructor/factory method\n at [Source: java.io.PushbackInputStream@6bfcfc6d; line: 1, column: 1]; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class com.sensedia.authorization.model.AccessTokenRequest] from String value ('code'); no single-String constructor/factory method\n at [Source: java.io.PushbackInputStream@6bfcfc6d; line: 1, column: 1]"}],"status":400}

 

 

 

 Leia mais em:

https://desenvolvedores.cnova.com/api-portal/OAuth2

 

Esse artigo foi útil?
Usuários que acharam isso útil: 1 de 1

0 Comentários

Artigo fechado para comentários.