当前位置: 首页 > 知识库问答 >
问题:

了解摘要身份验证-CodeIgniter Rest Server

濮阳景天
2023-03-14

https://github.com/philsturgeon/codeigniter-restserver/

我已经创建了一个api使用Rest服务器上面,需要登录保护它现在。我知道Rest服务器有两种方法1)基本,2)摘要

我还使用rest客户端来测试这个api

    $this->load->library('rest', array(  
        'server' => 'http://mynew/api/',  
        'http_user' => 'admin',  
        'http_pass' => '1234',  
        'http_auth' => 'basic', // or 'digest'  
        //'http_auth' => 'digest' 
    ));

  $user = $this->rest->get('listrecord', array('key' => 'mykey'), 'json'); 

我有$config['rest_valid_logins']=数组('admin'=

在上面的代码中,“basic”auth可以正常工作,但当我将其更改为digest时,它会显示“notauthorized”。请注意,当我在这里进行更改时,我也将配置更改为摘要。

我的理解是基本的不是很安全?所以这就是为什么我认为消化会比它更好。有什么办法让我的消化系统工作吗??谢谢你的帮助。我想这可能不是特定于codeigniter的问题。


共有1个答案

顾池暝
2023-03-14

您可以省去一些麻烦,通过SSL使用基本身份验证。如果您没有使用SSL,那么我认为Digest将是一种方式。再说一次,如果您不使用SSL,您就不是真正安全的。

我将使用CURL测试您的REST服务器,以确定您的问题是在客户端还是服务器上

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mynew/api/");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, "admin:1234");

// need to get WWW-Authenticate header from the server (for realm and nonce) with a HEAD request
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_exec($ch);        

// the get the real output
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
$output = curl_exec($ch);
echo $output;
 类似资料:
  • Dropwizard是否也支持摘要验证?我只找到了基本的身份验证和OAuth。这方面的示例代码会很好。 null

  • 如何在邮递员中设置curl摘要身份验证? 例如 curl 命令: 我尝试在邮递员中使用摘要式身份验证以及基本身份验证。摘要身份验证返回 401,而基本身份验证返回 500。所以我想说基本身份验证不是正确的。 在digest auth中,我设置了以下选项。 其他一切都保持默认。我还选中了“将帮助程序数据保存到请求”复选框和“更新请求”按钮。 仍然得到401。 根据响应,我得到了一个、和一个。我以前没

  • 是否可以使用WLST脚本或通过其他自动化方式启用WebLogic摘要身份验证? 我正在使用正式的Oracle WebLogic docker映像,并在映像构建期间使用WLST脚本对其进行配置。但是,我没有找到使用WLST启用摘要密码的方法。此外,在管理控制台上手动启用它需要重新启动,这实际上会破坏容器,因为WebLogic进程是入口点。 如何在图像生成期间自动启用摘要?

  • 我对Web浏览器的基本身份验证有点困惑。我原以为Web浏览器只会在之前的响应中收到HTTP 401状态后发送授权标头。然而,似乎Chrome在之后的每个请求中都发送授权标头。它包含我曾经输入的数据,以响应我网站上的401,并与每条消息一起发送(根据Chrome和我的Web服务器附带的开发人员工具)。这是预期的行为吗?我应该在我的401中使用一些标头来推断不应该缓存授权内容吗?我目前正在使用WWW-

  • 我需要一个android应用程序,以实时流rtsp网址使用videoview或媒体播放器与摘要验证。我不知道如何使用摘要身份验证和rtsp URL。是否可以在MediaPlayer中使用摘要验证。如有任何帮助,我们将不胜感激。

  • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工

  • 当我用正确的用户名和密码发送PUT请求时,它工作正常。但当我用错误的密码发送请求时,我收到了401,这是可以的,但在中我得到了2个WWW认证头: 响应头:HTTP/1.1 401 WWW.Authenticate:Digest realm=“NOKIA.COM”,qop=“auth”,nonce=“mtu1mjm3mdk2mdq2mjpmownjyvmngu5oda0zmy0ywy0mjixndl

  • 问题内容: 我收到错误 NOAUTH必需的身份验证 。我的laravel版本是5.3,我正在使用predis 1.1.1连接redis。 在etc / redis / redis.conf中,我有: 在.env文件中 在config / database.php中,我有: 我通过以下方式连接redis: 并像这样使用它: 因此,当我注释掉并将密码发送为null时,它可以工作,但在密码到位后却无法工