|
|
|
@@ -0,0 +1,32 @@ |
|
|
|
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 |