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?
|
tip_exception("code不能为空") if code.blank?
|
||||||
|
|
||||||
new_user = false
|
new_user = false
|
||||||
result = Ci4s::Service.access_token(code)
|
token = Ci4s::Service.access_token(code)
|
||||||
Rails.logger.info("[OAuth2] result -> #{result}")
|
Rails.logger.info("[OAuth2] result -> #{token}")
|
||||||
# result = token[:account_info]
|
result = Ci4s::Service.user_info(token[:access_token])
|
||||||
result = Ci4s::Service.user_info(result[: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?
|
if open_user.present? && open_user.user.present?
|
||||||
successful_authentication(open_user.user)
|
successful_authentication(open_user.user)
|
||||||
redirect_to root_path(new_user: false)
|
redirect_to root_path(new_user: false)
|
||||||
|
@ -27,20 +27,20 @@ class Oauth::Ci4sController < Oauth::BaseController
|
||||||
else
|
else
|
||||||
if current_user.blank? || !current_user.logged?
|
if current_user.blank? || !current_user.logged?
|
||||||
new_user = true
|
new_user = true
|
||||||
session[:unionid] = result['username']
|
session[:unionid] = user_info['username']
|
||||||
# login = User.generate_login('E')
|
# login = User.generate_login('E')
|
||||||
login = result['username']
|
login = user_info['username']
|
||||||
email = result['email']
|
email = user_info['email']
|
||||||
email = "#{login}@forge.com" if email.blank?
|
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?
|
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)
|
successful_authentication(open_user.user)
|
||||||
else
|
else
|
||||||
render_error(reg_result[:message])
|
render_error(reg_result[:message])
|
||||||
end
|
end
|
||||||
else
|
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
|
||||||
end
|
end
|
||||||
Rails.logger.info("[OAuth2] session[:unionid] -> #{session[:unionid]}")
|
Rails.logger.info("[OAuth2] session[:unionid] -> #{session[:unionid]}")
|
||||||
|
|
Loading…
Reference in New Issue