Exemplos de utilização

Python (django e flask)

O projeto python-passaporte-web implementa um cliente da API do Passaporte Web em python puro.

O projeto django-passaporte-web consiste em uma app que utiliza diversas das funcionalidades providas pelo Passaporte Web.

O projeto MyfcID Clients contém um exemplo de projeto django integrado ao Passaporte Web, utilizando o django-passaporte-web.

O projeto Flask IdentityClient é um blueprint que implementa a autenticação por Single-Sign-On via OAuth e pode ser integrada a seu projeto.

Ruby e ruby on rails

O projeto omni_auth_passaporte_web contém a implementação da autenticação por Single-Sign-On via OAuth.

O projeto passaporteweb-client-ruby implementa um cliente da API do Passaporte Web, complementando o omni_auth_passaporte_web.

O projeto exemplo_passaporte_web_rails_3_2 contém um exemplo de projeto rails utilizando o Single-Sign-On do Passaporte Web. Este projeto pode ser utilizado como referência para novas implementações.

Java e Jython

O repositório signpost-examples contem exemplos de utilização da biblioteca signpost executando todo o processo da comunicação OAuth junto ao Passaporte Web. Além do exemplo Java existe um exemplo transcrito para Jython.

Erlang

O repositório erlang-oauth-examples contem exemplos de utilização da biblioteca erlang-oauth executando todo o processo da comunicação OAuth junto ao Passaporte Web.

PHP

O script abaixo exemplifica o processo de autenticação do usuário utilizando a biblioteca OAuth do PHP. Para utilizá-lo, você precisará criar uma conta no ambiente de sandbox do Passaporte Web (utilizado para testes e homologação de funcionalidades) e deverá alterar o valor da variável $callback_url, que deverá apontar para a URL do script de teste.

<?php
$req_url = 'http://sandbox.app.passaporteweb.com.br/sso/initiate';
$authurl = 'http://sandbox.app.passaporteweb.com.br/sso/authorize';
$acc_url = 'http://sandbox.app.passaporteweb.com.br/sso/token';
$api_url = 'http://sandbox.app.passaporteweb.com.br/sso/fetchuserdata';
$callback_url = '<url do script atual>;';
$conskey = '8ab29iwKFI';
$conssec = 'VnWYenOqYsHtcFowrdJlwdJNALq5Go9v';

session_start();

// In state=1 the next request should include an oauth_token.
// If it doesn't go back to 0
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) {
   $_SESSION['state'] = 0;
}

try {
  $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
  $oauth-&>;enableDebug();
  if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
    $request_token_info = $oauth-&>;getRequestToken($req_url,$callback_url);
    $_SESSION['secret'] = $request_token_info['oauth_token_secret'];
    $_SESSION['state'] = 1;
    header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
    exit;
  } else if($_SESSION['state']==1) {
    $oauth-&>;setToken($_GET['oauth_token'],$_SESSION['secret']);
    $access_token_info = $oauth-&>;getAccessToken($acc_url);
    $_SESSION['state'] = 2;
    $_SESSION['token'] = $access_token_info['oauth_token'];
    $_SESSION['secret'] = $access_token_info['oauth_token_secret'];
  }
  $oauth-&>;setToken($_SESSION['token'],$_SESSION['secret']);
  $oauth-&>;fetch($api_url);
  $json = json_decode($oauth-&>;getLastResponse());
  print_r($json);
} catch(OAuthException $E) {
  print_r($E);
}
?>;

Caso o script esteja funcionando corretamente, você será redirecionado para a página de autenticação, onde deverá se autenticar e permitir o acesso da aplicação de teste aos dados do seu usuário. Após permitir o acesso você será redirecionado de volta para o script de teste, onde será exibido um objeto contendo os dados do usuário recém autenticado.