fixed ci4s oauth2接入 user_info
This commit is contained in:
parent
45f597ab47
commit
3a460b3b1d
|
@ -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]}")
|
||||
|
|
Loading…
Reference in New Issue