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.
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.
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.
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.
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.