كيفية تخطي نافذة "إنشاء حساب جديد" عند استخدام ManagedAuthenticator مخصص + استراتيجية OmniAuth؟

لقد قمت بتنفيذ استراتيجية OmniAuth مخصصة بالإضافة إلى مصادق يمتد من Auth::ManagedAuthenticator الخاص بـ Discourse.

ومع ذلك، عند اختبار ذلك في بيئة التطوير الخاصة بي، أنتهي في النهاية بهذه الشاشة بدلاً من تسجيل الدخول فورًا:

تم ملء المعلومات بشكل صحيح من هاش المصادقة، ومع ذلك، لا أريد أن يتمكن المستخدمون من تغيير اسم المستخدم أو الاسم هنا. كيف يمكنني تغيير تنفيذي / إعدادات المنتدى لتجاوز هذه الشاشة وإنشاء حساب المستخدم وتسجيل الدخول فورًا (إذا لم يكن موجودًا)؟

المصادق:

class MyAuthenticator < ::Auth::ManagedAuthenticator

    def name
        'my_authenticator'
    end

    def enabled?
        true
    end

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

الاستراتيجية:

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

تم دمج هذا الآن