Come saltare la finestra "Crea nuovo account" quando si usa una strategia custom ManagedAuthenticator + OmniAuth?

Ho implementato una strategia OmniAuth personalizzata + un autenticatore che estende Auth::ManagedAuthenticator di Discourse.

Tuttavia, quando lo metto alla prova nel mio ambiente di sviluppo, finisco infine su questa schermata, invece di essere immediatamente autenticato:

Le informazioni sono compilate correttamente dall’hash di autenticazione, ma non voglio che gli utenti possano modificare qui il loro nome utente o il nome. Come posso modificare la mia implementazione o le impostazioni del forum in modo che questa schermata venga saltata e l’account utente venga creato immediatamente (se non esiste) e l’utente venga autenticato?

Autenticatore:

class MyAuthenticator < ::Auth::ManagedAuthenticator

    def name
        'my_authenticator'
    end

    def enabled?
        true
    end

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

Strategia:

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

Questo arriverà tra qualche settimana

Quindi, leggendo la PR, sembra che questo possa essere attivato semplicemente modificando le impostazioni e non sarà necessaria una modifica al codice dell’autenticatore personalizzato una volta rilasciato, giusto?

Esatto. Credo che il piano di @david sia di eseguire il merge una settimana o due dopo il rilascio della versione 2.5 2020-06-25T03:00:00Z

Questo è ora unito