fix js redirect
This commit is contained in:
parent
c4a92fe4a4
commit
0cd790ecac
|
@ -10,18 +10,22 @@ class Oauth::EducoderController < Oauth::BaseController
|
||||||
open_user= OpenUsers::Educoder.find_by(uid: login)
|
open_user= OpenUsers::Educoder.find_by(uid: login)
|
||||||
|
|
||||||
if open_user.present? && open_user.user.present? && open_user.user.email_binded?
|
if open_user.present? && open_user.user.present? && open_user.user.email_binded?
|
||||||
# 存在说明绑定了,验证信息是否齐全,
|
|
||||||
if current_user != open_user.user
|
if current_user != open_user.user
|
||||||
logout_user
|
logout_user
|
||||||
successful_authentication(open_user.user)
|
successful_authentication(open_user.user)
|
||||||
end
|
end
|
||||||
|
|
||||||
redirect_to callback_url
|
redirect_to callback_url
|
||||||
else
|
else
|
||||||
# 未存在需要进行绑定
|
|
||||||
if current_user.blank? || !current_user.logged?
|
if current_user.blank? || !current_user.logged?
|
||||||
# forge平台未登录
|
user = User.find_by(login: login)
|
||||||
redirect_to oauth_register_path(login: login, callback_url: callback_url)
|
if user
|
||||||
|
successful_authentication(user)
|
||||||
|
OpenUsers::Educoder.create!(user: user, uid: user.login)
|
||||||
|
|
||||||
|
redirect_to callback_url
|
||||||
|
else
|
||||||
|
redirect_to oauth_register_path(login: login, callback_url: callback_url)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
# forge平台已登录
|
# forge平台已登录
|
||||||
OpenUsers::Educoder.create!(user: current_user, uid: login)
|
OpenUsers::Educoder.create!(user: current_user, uid: login)
|
||||||
|
|
|
@ -55,22 +55,27 @@ class OauthController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def register
|
def register
|
||||||
logger.info "=====auto_register=======login: #{params[:login]}"
|
|
||||||
logger.info "=====auto_register=======callback_url: #{params[:callback_url]}"
|
|
||||||
# redirect_to params[:callback_url]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def auto_register
|
def auto_register
|
||||||
login = params[:login]
|
login = params[:login]
|
||||||
email = params[:mail]
|
email = params[:mail]
|
||||||
password = params[:password]
|
password = params[:password]
|
||||||
|
callback_url = params[:callback_url]
|
||||||
platform = params[:plathform] || 'forge'
|
platform = params[:plathform] || 'forge'
|
||||||
|
|
||||||
result = autologin_register(login, email, password, platform)
|
result = autologin_register(login, email, password, platform)
|
||||||
|
logger.info "[Oauth educoer] =====#{result}"
|
||||||
if result[:message].blank?
|
if result[:message].blank?
|
||||||
redirect_to params[:callback_url]
|
logger.info "[Oauth educoer] ====auto_register success"
|
||||||
|
user = User.find result[:user][:id]
|
||||||
|
successful_authentication(user)
|
||||||
|
OpenUsers::Educoder.create!(user: user, uid: user.login)
|
||||||
|
|
||||||
|
render_ok({callback_url: callback_url})
|
||||||
|
# redirect_to callback_url
|
||||||
else
|
else
|
||||||
|
logger.info "[Oauth educoer] ====auto_register failed."
|
||||||
render :action => "auto_register"
|
render :action => "auto_register"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -52,7 +52,16 @@
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "<%= oauth_auto_register_path %>",
|
url: "<%= oauth_auto_register_path %>",
|
||||||
data: $("#oauth_form").serialize(),
|
data: $("#oauth_form").serialize(),
|
||||||
type: 'post'
|
type: 'post',
|
||||||
})
|
dataType: "json",
|
||||||
|
success: function(data) {
|
||||||
|
console.log(data)
|
||||||
|
if (data) {
|
||||||
|
// data.redirect contains the string URL to redirect to
|
||||||
|
// window.location.href = "<%#= params[:callback_url] %>";
|
||||||
|
window.location.href = data.callback_url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue