From 3a460b3b1db94b55e95b7f5776416a467a508ad7 Mon Sep 17 00:00:00 2001 From: xxq250 Date: Wed, 23 Oct 2024 11:48:25 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20ci4s=20oauth2=E6=8E=A5=E5=85=A5=20user?= =?UTF-8?q?=5Finfo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/oauth/ci4s_controller.rb | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/controllers/oauth/ci4s_controller.rb b/app/controllers/oauth/ci4s_controller.rb index ba76d370b..dc345505d 100644 --- a/app/controllers/oauth/ci4s_controller.rb +++ b/app/controllers/oauth/ci4s_controller.rb @@ -13,13 +13,13 @@ class Oauth::Ci4sController < Oauth::BaseController tip_exception("code不能为空") if code.blank? new_user = false - result = Ci4s::Service.access_token(code) - Rails.logger.info("[OAuth2] result -> #{result}") - # result = token[:account_info] - result = Ci4s::Service.user_info(result[:access_token]) - + token = Ci4s::Service.access_token(code) + Rails.logger.info("[OAuth2] result -> #{token}") + result = Ci4s::Service.user_info(token[:access_token]) + tip_exception("请求用户信息错误") if result['code'].to_i != 200 + user_info = result['data'] # 存在该用户 - open_user = OpenUsers::Ci4s.find_by(uid: result['login']) + open_user = OpenUsers::Ci4s.find_by(uid: user_info['login']) if open_user.present? && open_user.user.present? successful_authentication(open_user.user) redirect_to root_path(new_user: false) @@ -27,20 +27,20 @@ class Oauth::Ci4sController < Oauth::BaseController else if current_user.blank? || !current_user.logged? new_user = true - session[:unionid] = result['username'] + session[:unionid] = user_info['username'] # login = User.generate_login('E') - login = result['username'] - email = result['email'] + login = user_info['username'] + email = user_info['email'] email = "#{login}@forge.com" if email.blank? - reg_result = autologin_register(login,email, "Ec#{login}2021#", 'educoder', result['mobile']) + reg_result = autologin_register(login,email, "Ec#{login}2021#", 'educoder', user_info['mobile']) if reg_result[:message].blank? - open_user = OpenUsers::Ci4s.create!(user_id: reg_result[:user][:id], uid: login, extra: result) + open_user = OpenUsers::Ci4s.create!(user_id: reg_result[:user][:id], uid: login, extra: user_info) successful_authentication(open_user.user) else render_error(reg_result[:message]) end else - OpenUsers::Ci4s.create!(user: current_user, uid: result['login'], extra: result) + OpenUsers::Ci4s.create!(user: current_user, uid: user_info['login'], extra: user_info) end end Rails.logger.info("[OAuth2] session[:unionid] -> #{session[:unionid]}")