Php 通过Ajax的Restful认证
我正在实现一个restful api,我想知道是否可以使用ajax安全地进行身份验证,而不暴露身份验证的基本原则?将使用的凭据与使用curls传递的凭据相同: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']; 这是否可能,如果可能,如何实现?否。这正是
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的授权过程中,我是否应该检查用户是否有会话?要获得具体的帮助,您需要在问题中给出具体的目标。