Rest API как пройти аутентификацию через Basic Auth?

Я хочу создать RESTful API с базовой авторизацией.

Как я могу сделать это в php? Как я могу получить ниже String и проверить аутентификацию на стороне PHP через заголовки?

Basic Zajkljask34jlksdlfkjds =

2

Решение

Как прочитать имя пользователя и пароль в PHP с Basic Auth.
Следующий код является просто примером того, как вы можете прочитать основную аутентификацию. детали и сделать аутентификацию.

if (isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER']==$valid_username &&  $_SERVER['PHP_AUTH_PW']==$valid_password) {
// the user is authenticated and handle the rest api call here
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";

} else {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;

}
?>

После авторизации вы можете сгенерировать сеансовый ключ и отправить его клиенту, а клиент может использовать этот ключ для вызова остальных методов API. Использование базовой аутентификации без SSL небезопасно. Лучше, если вы можете использовать HTTPS.
Обратитесь по следующим ссылкам для настройки базовой аутентификации.

Если вы используете asp.net веб API

http://www.asp.net/web-api/overview/security/basic-authentication

Если вы используете php, я хотел бы предложить вам использовать остальные API Api Framework

http://www.appelsiini.net/projects/slim-basic-auth

2

Другие решения

Сначала вам нужно создать файл .htaccess, если он еще не существует. Теперь вам нужно добавить следующие строки:

RewriteEngine On
RewriteRule .* - [e=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Затем добавьте следующие строки кода в файл PHP, в котором вы хотите проанализировать информацию:

if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {

if (strpos(strtolower($_SERVER['REDIRECT_HTTP_AUTHORIZATION']),'basic')===0)
list($username,$password) = explode(':',base64_decode(substr($_SERVER['REDIRECT_HTTP_AUTHORIZATION'], 6)));

}

Здесь вы можете видеть, что имя пользователя и пароль хранятся в переменных $ username и $ password. Теперь вы можете делать с этими значениями все, что хотите, например, проверять базу данных — вы можете сделать это, добавив дополнительную логику.

0