繁体   English   中英

CodeIgniter 2.2.0 + ION_Auth + Restful API

[英]CodeIgniter 2.2.0 + ION_Auth + Restful API

我正在将代码igniter 2.2.0与ion_auth库一起使用来验证我的用户,但是现在我需要创建一些Restful服务,并且我想使用库。 我在rest.php中看到可以将rest_auth参数更改为“ digest”,并且可以将auth_source定义为“ library”,问题是我不知道是否可以将ion_auth库设置为身份验证库。

1-在我的/application/confing/rest.php文件中,设置这些首选项:

$config['rest_auth'] = 'digest';
$config['auth_source'] = 'library';
$config['auth_library_class'] = 'ion_auth';
$config['auth_library_function'] = 'get_hashed_password';
$config['rest_enable_keys'] = TRUE;

2-我在/ application / libraries / ion_auth上创建了一个新函数

public function get_hashed_password($username) {
    $user = $this->db->select('password')->where('email',$username)->get('users');
    if ($user->num_rows() == 0) {
        return false;
    }
    $user_details = $user->row();
    $HA1 = $user_details->password;
    return $HA1;
}

然后,我尝试连接到示例服务,但答案是:

{"status":0,"error":"Invalid credentials"}

我试图在服务器上进行一些调试,我认为问题是get_hashed_pa​​ssword()函数应该使用md5返回密码,如果我直接从数据库获取密码,ion_auth使用的是bcrypt。 我认为这就是为什么1411行中REST_controller的digest ['response']和valid_response变量不相等的原因。

我还尝试强制REST_crontroller接受凭据(我知道这是不正确的,但是我正在做一些测试),然后我的问题是我总是遇到以下错误:

{"status":false,"error":"Invalid API Key "}

任何人都知道如何使其工作吗?

谢谢你的帮助!

对于摘要身份验证,库函数应为该用户名返回已存储的md5(username:restrealm:password)。 例如:md5('admin:REST API:1234')='1e957ebc35631ab22d5bd6526bd14ea2'

我尝试并通过了:尝试返回MD5('$ login:REST API:$ password'); 其中$ login是您的登录名,而$ password是密码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM