2017-05-03 1 views
0

사용자가 로그인해야하는 codeigniter 응용 프로그램이 있으며 해당 사용자 이름과 암호가 MySQL 데이터베이스에서 일치하는지 확인됩니다. 일치하는 경우 나는 그들을 들여 보내 줬어. 아주 간단하고, 끔찍하게 안전하지도 않아.Codeigniter - URL에 로그인 자격 증명을 전달하는 기능

나는 로그인하는 것과 세션과 그 모든 것들에 익숙하지 않지만, 때때로 나는 사이트에 로그인하지 않은 부분에 사용자가 직접 액세스 할 수있는 특별한 링크를 어떻게 만들지 궁금합니다. 사용자 이름과 비밀번호를 입력해야합니다. 이것에 대한 간단한 해결책이 있습니까? 이것은 여전히 ​​다소 프로토 타입/데모이기 때문에 보안보다 단순하고 안정성에 더 관심이 있습니다. 감사.

+1

1. 토큰 (긴 임의의 문자열)를 생성 할 수 있습니다 test_user 말할 수, 그것에 대한 설정 제한하고, 해당 고객에 연결 (DB)에 저장합니다. 2. 해당 토큰을 포함하는 URL을 사용하는 동안이를 검사하여 고객 test_user로 프로그래밍 방식으로 로그인하십시오. 3. 토큰을 무효화하십시오. – sergio

+0

https://github.com/Spomky-Labs/otphp - 한 번만 암호를 입력하십시오. – lumos0815

답변

0

사용자 이름과 암호를 데이터베이스에 하드 코딩하여 로그인 기능이라고하는 로그인 함수라는 특수 링크를 생성하고 로그인 페이지에서이 특수 버튼으로 사용자가 해당 버튼을 클릭하는 버튼을 만듭니다 링크를 사용하면 일시적으로 사용자가 사용자 이름과 비밀번호를 입력하지 않고도 사이트의 로그인 된 부분에 직접 액세스 할 수 있습니다. 다음은

샘플 코드 : 특정 사용자에 대해

special link www.test.com/admin/auth/special_login 

function special_login() 
    { 
    $this->index("username","password"); 
    } 

funciton index (username =false, password =false) 
    { 
    //your regular loging macanisam wehre just you chech if any value in parameters then you will log in with this username and password otherwise you will be pass by your regular post data 
    } 
관련 문제