2011-10-28 44 views
0

我对CI很新,尝试使用用户身份验证构建基本API。我发现了约CodeIgniter REST server,这似乎很容易使用,并涵盖了我需要的一切(谢谢菲利普斯特金!)。CodeIgniter REST服务器:存储用户帐户

不幸的是,图书馆没有文档,我试图找出是否有任何的方式来存储登录infomration,除了:

$config['rest_valid_logins'] = array('admin' => '1234'); 

我想有存储在数据库中,而不是该信息。有谁知道这是否可能?

谢谢!

回答

8

根据代码,这个信息被在两个函数用于REST_Controller.php:

1. _check_logn() 
2. _prepare_digest_auth() 

,它是用来为:$valid_logins = & $this->config->item('rest_valid_logins');

所以,如果你是存储这些信息在数据库中,可以在这里加载适当的模型,并检索一个数组并使用它。例如:

$this->load->model('user_info'); 
$valid_logins = $this->user_info->getValidLogins(); 

记住你getValidLogins()必须返回类似于你你已经在配置文件中的用户名即作为密钥和密码作为值定义的数组。

P.S:我没有测试它。只需遵循代码。 !

+0

感谢Vikk我有一个快速浏览一下你的建议和代码 - 如果我理解正确 - 我需要为所有用户非常一次有人尝试登录获取用户名/密码。那是对的吗? –

+0

不一定。这里唯一要做的就是检查我们的列表和密码匹配中是否存在提供的用户名。您可以轻松修改代码,以便仅检索提供的用户名的详细信息。 – Vikk

+0

IMO此解决方案涉及以非常不安全的纯文本形式存储密码。密码在存储到数据库之前应始终进行散列(bcrypt)。 – MaxiWheat