커스텀 ManagedAuthenticator + OmniAuth 전략을 사용할 때 「새 계정 만들기」 창을 건너뛰는 방법?

커스텀 OmniAuth 전략과 Discourse의 Auth::ManagedAuthenticator를 확장한 인증기(authenticator)를 구현했습니다.

하지만 개발 환경에서 테스트를 해보면 즉시 로그인되는 대신 결국 아래 화면에 도달하게 됩니다:

정보는 auth hash에서 올바르게 채워져 있지만, 사용자가 여기서 사용자 이름이나 이름을 변경할 수 있기를 원하지 않습니다. 이 화면을 건너뛰고 사용자 계정이 즉시 생성(존재하지 않는 경우)되고 로그인되도록 구현이나 포럼 설정을 어떻게 변경해야 할까요?

인증기 (Authenticator):

class MyAuthenticator < ::Auth::ManagedAuthenticator

    def name
        'my_authenticator'
    end

    def enabled?
        true
    end

    def register_middleware(omniauth)
        omniauth.provider name.to_sym, {}
    end
    
end

전략 (Strategy):

require 'omniauth'

...

class OmniAuth::Strategies::MyAuthenticator
    include OmniAuth::Strategy

    option :name, "my_authenticator"

    ...

    def callback_phase
        ...

        @user_id = ...
        @username = ...
        @avatar = ...
        @email = ...

        ...
    end
	
	...
	
    def auth_hash
        {
            provider: "my_authenticator",
            uid: @user_id,
            info: {
                name: @username,
                image: @avatar,
                email: @email
            },
            extra: {}
        }
    end

end

OmniAuth.config.add_camelization('my_authenticator', 'MyAuthenticator')

plugin.rb:

before_auth do
    ...

    auth_provider authenticator: MyAuthenticator.new()

    ...
end

몇 주 안에 출시됩니다

PR을 읽어보니, 설정만 전환하면 활성화할 수 있고, 이 기능이 출시된 후 커스텀 인증기에 코드 변경이 필요하지 않다는 뜻인가요?

맞아요. @david의 계획은 2.5 릴리스일인 2020-06-25T03:00:00Z 이후 1~2주 정도에 머지를 진행하는 것이라고 생각합니다.

이제 병합되었습니다