메뉴 훅을 사용하여 Drupal 7 모듈을 생성하십시오. 메뉴 후크는 사용자 이름과 암호를 $ _POST 변수로 받아 들여야하며 user_login()이라는 인증 추적을 따라야합니다.
function my_module_authentication_menu_hook() {
// Note anywhere below that I put return FALSE you should return a failed auth response.
// Where there is a return TRUE you should return a successful auth response.
// The formatting of the auth response is up to you with how your Moodle call will react.
if (!isset($_POST['username']) || !isset($_POST['password'])) {
return FALSE;
}
$username = $_POST['username'];
$password = $_POST['password'];
// Functionality from user_login_name_validate().
if (user_is_blocked($username)) {
return FALSE;
}
// Functionality from user_login_authenticate_validate().
// You should add flood handling in here as well, but it can not be IP based, unless you
// supply the IP of the user through your Moodle functionality.
if (user_authenticate($username, $password) === FALSE) {
return FALSE;
}
// See user_login_final_validate() and implement failed login functionality before success.
return TRUE;
}
내가 양심이 드루팔 통해 라우팅하고자 직접 데이터베이스를 쿼리하지 않으려면이며, 권장하지 수있는 또 다른 옵션을 :
그래서 기본적으로 당신이로 끝날 것입니다. user_check_password()의 코드를 _password_crypt(), _password_get_count_log2(), _password_base64_encode() 등의 종속 코드와 함께 재현해야합니다. 또한 사용자가 차단되었는지 또는 인증되지 않았는지 식별하는 기능을 재 작성해야합니다. 또한 사용자가 user_login_default_validators() 기능을 사용하여 로그인 할 수 있는지 확인해야합니다. 그런 다음 Drupal 코어에서 해당 코드가 업데이트되면 다시 업데이트해야합니다. 유지 보수를 위해 Drupal을 통한 라우팅을 권장합니다.
참고로 단일 로그온과는 다른 공유 로그온을 수행합니다. 게시물에 싱글 사인온으로 태그가 지정되었지만 공유 사인에 관한 질문이있었습니다. 실제 싱글 사인온을 수행하려면 공유 쿠키, 세션 시간 초과 구성, 환경에 매우 특정한 기타 복잡한 문제 등이 훨씬 더 많이 필요합니다. –