PHP CodeIgniter:成功的离子身份验证登录会刷新、注销并重定向到登录



我最近继承了一个工作的网站代码,CodeIgnitor中用PHP设计,我正在尝试进一步发展它。尝试在本地运行它时(xampp(,我遇到了一个问题:

代码构建良好,并将我带到登录页面。在那里,我使用ion-auth登录,它成功继续,保存一个会话(这有效(并继续登陆页面。然而,一旦登录后加载任何页面,它就会立即将用户注销并导航回登录页面。

与实时网站相比,代码中唯一更改的是它连接到的数据库,基本URL和一些导航。这里可能有什么问题?这会是xamppion-auth或某些配置的问题吗?

// log the user in
public function login()
{
$this->data['title'] = $this->lang->line('login_heading');
// validate form input
$this->form_validation->set_rules('identity', str_replace(':', '', $this->lang->line('login_identity_label')), 'required');
$this->form_validation->set_rules('password', str_replace(':', '', $this->lang->line('login_password_label')), 'required');
if ($this->form_validation->run() == true)
{
// check to see if the user is logging in
// check for "remember me"
$remember = (bool) $this->input->post('remember');
if ($this->ion_auth->login($this->input->post('identity'), $this->input->post('password'), $remember))
{
// if the login is successful
// redirect them back to the home page
$this->session->set_flashdata('message', $this->ion_auth->messages());
redirect('/', 'refresh');
}
else
{
// if the login was un-successful
// redirect them back to the login page
$this->session->set_flashdata('message', $this->ion_auth->errors());
redirect('auth/login', 'refresh'); // use redirects instead of loading views for compatibility with MY_Controller libraries
}
}
else
{
// the user is not logging in so display the login page
// set the flash data error message if there is one
$this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message');
$this->data['identity'] = array('name' => 'identity',
'id'    => 'identity',
'type'  => 'text',
'value' => $this->form_validation->set_value('identity'),
);
$this->data['password'] = array('name' => 'password',
'id'   => 'password',
'type' => 'password',
);
$this->_render_page('auth/login', $this->data);
}
}

正如马丁所建议的那样,我尝试了显示以下内容session_start();

A PHP Error was encountered
Severity: Warning
Message: ini_set(): A session is active.
You cannot change the session module's ini settings at this time
Filename: Session/Session.php
Line Number: 281
Backtrace:
File: C:ProgramsxampphtdocsmodulesapplicationsazdemocontrollersShared.php
Line: 8
Function: __construct
File: C:Programsxampphtdocsmodulescustomersazdemoindex.php
Line: 315
Function: require_once

嘿,所以我遇到了同样的问题。它与 php5.6 和 php7.2 的离子身份验证支持有关

。它们对不同的 php 版本使用不同的哈希技术。如果您已经升级了 php 版本,则可能需要检查 ion-auth 配置文件并更新哈希方法。

以下是离子身份验证文档中的一些内容:

您可以选择 bcrypt(从 PHP 5.3 开始(或 argon2(从 PHP 7.2 开始(

文档链接:ION-Auth

让我知道它是否有帮助,如果您觉得有用,请投赞成票!

临时通过从php7.2.6降级到php5.5.38来解决此问题。可能是某些库需要升级的情况。我也从xampp切换到mamp pro 4,因为本地域问题以及您无法轻松降级 xampp 的 php 版本的事实。

希望这对将来的某人有所帮助。

相关内容

  • 没有找到相关文章

最新更新