내 서버에 Joomla를 실행하는 웹 사이트가 있습니다. public_html 안에 새로운 디렉토리를 만들었습니다.이 디렉토리 안에는 Codeigniter 응용 프로그램이 있습니다. Codeigniter와 Joomla를 처음 접했을 때 Codeigniter를 사용하여 로그인 양식을 만들려고합니다. 사용자 정보를 저장하기 위해 새 테이블을 생성하고 싶지 않습니다. Joomla에 이미 그러한 정보가 있기 때문입니다. #_users라는 Joomla 테이블에서 사용자 정보 (사용자 이름과 암호)를 검색하려고하지만 문제는 암호가 Joomla에서 다른 방식으로 저장된다는 것입니다. 그것은 md5와 salt 문자열을 사용합니다. 가 여기 내 CodeIgniter의에서 모델의 : I 줌라의 사용자 테이블에 연결할 수있어Joomla 사용자 테이블에서 암호를 가져 와서 codeigniter 응용 프로그램에서 사용하십시오.
<?php
Class User extends CI_Model{
function login($username, $password){
$dbjoomla = $this->load->database('my_joomla_db');
$dbjoomla-> select('id, username, password');
$dbjoomla-> from('users');
$dbjoomla-> where('username', $username);
$dbjoomla-> where('password', md5($password));
$dbjoomla-> limit(1);
$query = $dbjoomla-> get();
if($query -> num_rows() == 1){
return $query->result();
}
else{
return false;
}
}
}
($의 dbjoomla가 비어 있지 않습니다 및 설정되어 있기 때문에)하지만, 코드 때문에 암호 형식의 아직 작동하지 않습니다 Joomla에 저장됩니다. md5 ($ password) 만 사용하여 검색 할 수 있습니다. Joomla 암호를 가져 와서 Codeigniter 응용 프로그램에서 확인할 수 있습니까? 그게 가능하니?
당신이'md5 and salt'라고 말하면, Joomla 2.5에 적용된다는 사실을 알고 있기를 바랍니다. Bcrypt는 Joomla 3.2 이후 버전에서 사용됩니다. :) – Lodder
나는 단지 Joomla 인증 및 사용자 플러그인과 JUser의 코드를 따라갈 것입니다. 사용자가 입력 한 암호가 테이블의 암호화 된 암호와 일치하는지 확인하는 것만 큼 사용자의 암호를 얻지 못합니다. 조심스럽게 공부하지 않는 한 인증을하지 마십시오. – Elin