[英]Rest API how to authentication via Basic Auth?
我想創建具有基本授權的 RESTful API。
我怎樣才能在 php 中做到這一點? 我怎樣才能通過標題在 php 端低於字符串和檢查身份驗證?
基本 Zajkljask34jlksdlfkjds=
如何使用基本身份驗證在 PHP 中讀取用戶名和密碼。 以下代碼只是您如何閱讀基本身份驗證的示例。 詳細信息並進行授權。
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 web api
http://www.asp.net/web-api/overview/security/basic-authentication
如果您使用的是 php,我建議您使用 rest api 框架
首先你需要創建 .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 變量中。 現在,您可以對這些值做任何您想做的事情,例如檢查數據庫——您可以通過添加額外的邏輯來做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.