Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过Ajax的Restful认证_Php_Javascript_Ajax_Security_Authentication - Fatal编程技术网

Php 通过Ajax的Restful认证

Php 通过Ajax的Restful认证,php,javascript,ajax,security,authentication,Php,Javascript,Ajax,Security,Authentication,我正在实现一个restful api,我想知道是否可以使用ajax安全地进行身份验证,而不暴露身份验证的基本原则?将使用的凭据与使用curls传递的凭据相同: curl_setopt($ch, CURLOPT_USERPWD, 'username:password'); 将通过以下方式接收请求: $_SERVER['PHP_AUTH_USER'] $_SERVER['PHP_AUTH_USER']; $_SERVER['PHP_AUTH_PW']; 这是否可能,如果可能,如何实现?否。这正是

我正在实现一个restful api,我想知道是否可以使用ajax安全地进行身份验证,而不暴露身份验证的基本原则?将使用的凭据与使用curls传递的凭据相同:

curl_setopt($ch, CURLOPT_USERPWD, 'username:password');
将通过以下方式接收请求:

$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_USER'];
$_SERVER['PHP_AUTH_PW'];

这是否可能,如果可能,如何实现?

否。这正是实现的目的和用例

使用基本的
HTTP
授权将公开凭证,特别是来自ajax的凭证,因为即使您通过
HTTPS
运行所有内容,它仍将在客户端代码中可用(在发出任何请求之前)

如果您仅在内部使用此api(不希望第三方开发人员使用),您可能会尝试使用“api密钥”而不是纯文本用户名和密码。这样,如果密钥被泄露,就可以重新生成密钥,并且永远不会暴露用户(可能)重复使用的密码

我发现API密钥+HTTPS涵盖了很多类似的情况

您只需生成一个唯一的哈希,然后使用该哈希对用户进行身份验证。。。使用API密钥作为用户名

curl_setopt($ch, CURLOPT_USERPWD, '<API KEY>:x');
curl_setopt($ch,CURLOPT_USERPWD,:x');

那么,在使用ajax的授权过程中,我是否应该检查用户是否有会话?要获得具体的帮助,您需要在问题中给出具体的目标。