forked from Trustie/forgeplus
32 lines
1.0 KiB
Ruby
32 lines
1.0 KiB
Ruby
class Oauth::AcgeController < Oauth::BaseController
|
|
include RegisterHelper
|
|
|
|
def create
|
|
begin
|
|
code = params['code'].to_s.strip
|
|
tip_exception("code不能为空") if code.blank?
|
|
uid = params['uid'].to_s.strip
|
|
tip_exception("uid不能为空") if uid.blank?
|
|
redirect_uri = params['redirect_uri'].to_s.strip
|
|
tip_exception("redirect_uri不能为空") if redirect_uri.blank?
|
|
|
|
open_user = OpenUsers::Acge.find_by(uid: uid)
|
|
if open_user.present? && open_user.user.present?
|
|
successful_authentication(open_user.user)
|
|
redirect_to redirect_uri
|
|
return
|
|
else
|
|
if current_user.blank? || !current_user.logged?
|
|
session[:unionid] = uid
|
|
else
|
|
OpenUsers::Acge.create!(user: current_user, uid: uid)
|
|
end
|
|
end
|
|
|
|
Rails.logger.info("[OAuth2] session[:unionid] -> #{session[:unionid]}")
|
|
redirect_to "/bindlogin/acge?redirect_uri=#{redirect_uri}"
|
|
rescue Exception => ex
|
|
render_error(ex.message)
|
|
end
|
|
end
|
|
end |