qinyj
(qinyj)
Août 30, 2022, 5:35
1
Pour me connecter avec un compte WECHAT, j’ai essayé d’utiliser le plugin oatuh2-basic mais j’ai rencontré un problème.
Normalement, le serveur WECHAT devrait retourner application/json, puis le plugin peut lire l’USID dans la chaîne json.
Malheureusement, le serveur retourne juste text/plain, qui ne peut pas être lu par le plugin.
Voici le résultat. L’un s’est connecté avec succès avec WEIBO, et l’autre a essayé de se connecter avec WECHAT mais a échoué.
J’ai essayé de modifier le code du plugin mais j’ai échoué, car je n’ai aucune idée de comment gérer le langage ruby.
Quelqu’un peut-il me dire où le code doit être modifié ? Ou y a-t-il une possibilité que le plugin puisse être mis à jour ?
qinyj
(qinyj)
Août 31, 2022, 4:01
4
Voici la trace d’appels
Message
(oauth2_basic) Échec de l'authentification ! invalid_credentials: 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!'
Env
HTTP HOSTS: frps.southdog.cool
qinyj
(qinyj)
Septembre 8, 2022, 4:24
7
Donnez une direction à mes compatriotes chinois. Dans le fichier containers/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/oauth2-1.4.7/lib/oauth2/response.rb, il y a le code suivant :
# Content type assignments for various potential HTTP content types.
@@content_types = {
'application/json' => :json,
………………
'text/plain' => :text,
}
Changez-le comme suit :
'text/plain' => :json,
Bien sûr, cela ne sera utile que pour WeChat, car seul WeChat renvoie du texte.
system
(system)
A fermé ce sujet ()
Octobre 8, 2022, 4:24
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.