discourse-migrate-password 플러그인으로 Drupal 비밀번호를 Discourse로 마이그레이션

  1. 플러그인 설치 및 활성화:
    • 다음 링크에서 Discourse Migrate Password 플러그인을 설치하여 시작하세요.

Discourse Migrate Password 플러그인
링크:
(discourse-migratepassword/plugin.rb at master · communiteq/discourse-migratepassword · GitHub).

  • 설치 후 Discourse 설정에서 플러그인을 활성화하세요. 이를 통해 Discourse로의 비보안 비밀번호 이식이 가능해집니다.

  1. 커스텀 필드 생성:
    • Discourse에서 사용자 사용자 정의 설정으로 이동하세요.
    • 여기서 "import_pass"라는 이름의 커스텀 필드를 생성하세요.

  1. 사용자 가져오기:

    • 선호하는 방법을 사용하여 하나 이상의 사용자를 Discourse로 가져오세요.
    • 가져오기 과정에서는 각 사용자의 “import_pass” 필드에 해시 문자열을 포함하도록 하세요.
  2. 로그인 시도:

    • 가져온 사용자명과 해시 문자열의 조합을 사용하여 Discourse에 로그인해 보세요.
    • 그러나 "사용자 이름과 비밀번호가 올바르지 않습니다."라는 오류 메시지가 표시될 수 있습니다.

  1. 표준 로그인:
    • 대안으로, 계정과 연결된 사용자명과 비밀번호를 사용하여 Discourse에 성공적으로 로그인할 수 있습니다.

Discourse에서 Drupal 비밀번호를 Discourse로 이식하기 위해 이 플러그인을 사용하는 방법에 대한 해결책을 공유해 주세요.
@Discourse

가져온 사용자에 대한 Drupal 지원을 하려면 기존 Drupal 가져오기(importer)를 수정하여 import_pass 필드를 채우도록 해야 합니다. 기본 가져오기(importer)에는 이미 이 기능이 포함되어 있으므로, create_users에 전달하는 구조체에 password 키로 해당 데이터베이스 필드를 전달하기만 하면 됩니다. 예를 들어 VBulletin 가져오기(importer)는 여기에서 그렇게 하고 있습니다.

Drupal 가져오기(importer)의 경우, 해당 위치는 여기와 여기입니다.

2단계는 필요하지도, 앞으로도 필요하지 않을 것입니다. 그 내용은 어디서 얻으신 건가요?

가져오기(import) 중에 플러그인은 비활성화 상태로 두시고, 가져오기 완료 후에 플러그인을 활성화해야 합니다.

따라서 올바른 순서는 다음과 같습니다:

  • 사용자 가져오기
  • 플러그인 설치 및 활성화

우리의 논의 맥락에서 이전 쿼리에 대한 귀한 피드백에 감사드립니다. 하지만 이제 플러그인의 기능이 올바르게 작동하는지 확인하는 테스트 방법에 대해 알아보고 싶습니다. 안내된 설치 단계를 따랐지만, 반응이 없어 문제를 겪고 있습니다. 스크립트가 적절하게 트리거되는지 어떻게 확인할 수 있는지 불분명합니다. 구체적으로, 플러그인 스크립트를 실행하기 전에 사용자가 입력한 초기 비밀번호가 비어 있거나 잘못된 것인지 확인하는 과정이 어떻게 이루어지는지 이해하고 싶습니다.

이와 관련하여 추가적인 통찰을 주시다면 매우 감사하겠습니다. 미리 도움을 주셔서 감사합니다.

이 플러그인은 User 클래스의 confirm_password? 메서드를 오버라이드하여 작동합니다.
먼저 원래의 비밀번호 확인 로직을 호출하며, 코어 Discourse 로직에서 비밀번호가 승인되면 아무 동작도 하지 않습니다.

그렇지 않은 경우, 사용자가 import_pass 커스텀 필드를 가지고 있는지 확인하고, 있다면 모든 사용 가능한 알고리즘을 사용하여 입력된 비밀번호를 import_pass 해시와 비교합니다.

일치가 발견되면, 입력된 비밀번호를 사용자의 비밀번호로 저장하고 사용자가 로그인할 수 있도록 허용합니다.

Drupal 6에서 Drupal 7로 마이그레이션된 해시에 대한 지원을 추가하는 PR을 생성했습니다.

이것이 이 주제에서 설명된 것처럼 자격 증명이 무효로 간주된 이유일 수 있습니다.