Kann das Plugin oauth2-basic Text in JSON konvertieren?

Um sich mit einem WECHAT-Konto anzumelden, habe ich versucht, das Plugin oatuh2-basic zu verwenden, bin aber auf ein Problem gestoßen.

Normalerweise sollte der WECHAT-Server application/json zurückgeben, damit das Plugin die USID im JSON-String lesen kann.

Unglücklicherweise gibt der Server nur text/plain zurück, was vom Plugin nicht gelesen werden kann.

Hier ist das Ergebnis. Einer hat sich erfolgreich mit WEIBO angemeldet, und der andere hat versucht, sich mit WECHAT anzumelden, ist aber fehlgeschlagen.

Ich habe versucht, den Code des Plugins zu ändern, bin aber gescheitert, da ich keine Ahnung von der Ruby-Sprache habe.

Kann mir also jemand sagen, wo der Code bearbeitet werden sollte? Oder gibt es eine Möglichkeit, dass das Plugin aktualisiert werden kann?

Hier ist der Backtrace

Nachricht

(oauth2_basic) Authentifizierungsfehler! ungültige_Anmeldeinformationen: OAuth2::Error, {"access_token":"60_xf-0xS4znmnu9z-2ZDhNN40RRluErfbiThzzoDz9p8-Ki9pH-A3ML2n3q6UhT7D6d6iCXlEVS5B7kGFsnhW2JHq6eXHNWOgzqXqMsAvhfY4","expires_in":7200,"refresh_token":"60_gfsBHpp0btOnWaZpnRXMywNTzDURCymRtw8sQj21XXC99aebh58Mb4vBGiKaXdYqDGkdovn2ytFoiqavsSWHLt_UiExbkPYA0z-4DBVjDlA","openid":"o01u45oBVM2YbPzmxXau263z_iW4","scope":"snsapi_base"}

Backtrace

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-1.9.2/lib/omniauth/strategy.rb:163:in `log'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-1.9.2/lib/omniauth/strategy.rb:486:in `fail!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-oauth2-1.7.2/lib/omniauth/strategies/oauth2.rb:96:in `rescue in callback_phase'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-oauth2-1.7.2/lib/omniauth/strategies/oauth2.rb:84:in `callback_phase'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-1.9.2/lib/omniauth/strategy.rb:238:in `callback_call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-1.9.2/lib/omniauth/strategy.rb:189:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-1.9.2/lib/omniauth/strategy.rb:169:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-1.9.2/lib/omniauth/strategy.rb:192:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-1.9.2/lib/omniauth/strategy.rb:169:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/omniauth-1.9.2/lib/omniauth/strategy.rb:192:in `call!'

Umgebung

HTTP HOSTS: frps.southdog.cool

Weisen Sie Ihre chinesischen Mitbürger einen Weg, in
container/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/oauth2-1.4.7/lib/oauth2/response.rb
befindet sich der folgende Code

    # Content type assignments for various potential HTTP content types.
    @@content_types = {
      'application/json' => :json,
      ………………
      'text/plain' => :text,
    }

Ändern Sie ihn wie folgt:

'text/plain' => :json,

Natürlich ist dies nur für WeChat nützlich, da nur WeChat text zurückgibt.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.