qinyj
(qinyj)
30.Август.2022 17:35:16
1
Чтобы войти с помощью учетной записи WECHAT, я попытался использовать плагин oatuh2-basic, но столкнулся с проблемой.
Обычно сервер WECHAT должен возвращать application/json, и тогда плагин может прочитать USID в строке JSON.
К сожалению, сервер возвращает только text/plain, что плагин не может прочитать.
Вот результат. Один пользователь успешно вошел через WEIBO, а другой попытался войти через WECHAT, но не смог.
Я пытался изменить код плагина, но не получилось, так как не знаю, как работать с языком Ruby.
Поэтому можете ли вы подсказать, где именно нужно отредактировать код? Или есть ли возможность обновить плагин?
qinyj
(qinyj)
31.Август.2022 16:01:49
4
Вот трассировка стека
Сообщение
(oauth2_basic) Ошибка аутентификации! 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"}
Трассировка стека
/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!'
Окружение
HTTP HOSTS: frps.southdog.cool
qinyj
(qinyj)
08.Сентябрь.2022 16:24:48
7
Укажем путь китайским соотечественникам: в файле
容器/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/oauth2-1.4.7/lib/oauth2/response.rb находится следующий код
# Content type assignments for various potential HTTP content types.
@@content_types = {
'application/json' => :json,
………………
'text/plain' => :text,
}
Измените его на:
'text/plain' => :json,
Конечно, это полезно только для WeChat, поскольку только WeChat возвращает текст.