qinyj
(qinyj)
30 Agosto 2022, 5:35pm
1
Per accedere con l’account WECHAT, ho provato a utilizzare il plugin oatuh2-basic ma ho riscontrato un problema.
Di solito, il server WECHAT dovrebbe restituire applicaion/json, quindi il plugin può leggere l’USID nella stringa json.
Sfortunatamente, il server restituisce solo text/plain, che non può essere letto dal plugin.
Ecco il risultato. Uno ha effettuato l’accesso con WEIBO con successo e l’altro ha tentato di accedere con WECHAT ma non è riuscito.
Ho provato a modificare il codice del plugin ma ho fallito, perché non ho idea di come gestire il linguaggio ruby.
Qualcuno può dirmi dove dovrebbe essere modificato il codice? O c’è la possibilità che il plugin possa essere aggiornato?
qinyj
(qinyj)
31 Agosto 2022, 4:01pm
4
Ecco il backtrace
Message
(oauth2_basic) Authentication failure! 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)
8 Settembre 2022, 4:24pm
7
Indica una strada ai tuoi compatrioti cinesi. Nel file
container/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/oauth2-1.4.7/lib/oauth2/response.rb
esiste il seguente codice:
# Content type assignments for various potential HTTP content types.
@@content_types = {
'application/json' => :json,
...
'text/plain' => :text,
}
Modificalo in questo modo:
'text/plain' => :json,
Naturalmente, questo sarà utile solo per WeChat, poiché solo WeChat restituisce testo.
system
(system)
Chiuso
8 Ottobre 2022, 4:24pm
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.