Autenticação via token Web Services
Boa galera, estou desenvolvendo um Web Services e estou tendo problemas com a camada de segurança, já fiz a implementação da autenticação via Digest, agora só falta o tal do token que não sei como gera isso, gostaria de mais informação sobre token com Digest.
se vocês tiverem uma documentação pratica exemplos eu agradeço.
o sistema vai funcionar assim:
Cliente HTML5
estou usando o pluguin digest-ajax para autenticação
$(".frm_voce").submit(function (e) {
e.preventDefault();
var url = "http://server.php";
$.ajaxDigest(url, {
username: 'admin',
password: 'pass'
}).done(function (data, textStatus, jqXHR) {
alert("OK");
}).fail(function (jqXHR, textStatus, errorThrown) {
alert("Erro");
}
});
Servidor PHP
$username = 'admin1';
$password = 'pass';
$realm = 'exemplo';
$nonce = md5(uniqid());
$opaque = md5(uniqid());
$valid = false;
$headers = getallheaders();
if (array_key_exists('Authorization', $headers)) {
$authHeader = substr($headers['Authorization'], strlen('Digest'));
$parsed = array();
foreach (explode(',', $authHeader) as $pair) {
$vals = explode('=', $pair);
$parsed[trim($vals[0])] = trim($vals[1], '" ');
}
$A1 = md5("$username:" . $parsed['realm'] . ":$password");
$A2 = md5($_SERVER['REQUEST_METHOD'] . ':' . $parsed['uri']);
$response = md5("$A1:" . $parsed['nonce'] . ":$A2");
$valid = ($response == $parsed['response']);
}
if (!$valid) {
header('HTTP/1.1 401 Unauthorized');
header('Content-Type: text/html');
header(sprintf('WWW-Authenticate: Digest realm="%s", nonce="%s", opaque="%s"', $realm, $nonce, $opaque));
echo 'erro.';
exit();
}else {
print 'ok';
}
Onde entra o tal do token nisso tudo?
Como é armazenado o mesmo lado cliente e do lado servidor?
Obrigado
Discussão (0)
Carregando comentários...