ADD sso login
This commit is contained in:
parent
d27af59a76
commit
210b35a3cb
|
@ -362,7 +362,7 @@ class ApplicationController < ActionController::Base
|
||||||
# auto-login feature starts a new session
|
# auto-login feature starts a new session
|
||||||
user = nil
|
user = nil
|
||||||
Rails.logger.info("111111111111111111#{default_yun_session}, session is #{session[:"#{default_yun_session}"]} ")
|
Rails.logger.info("111111111111111111#{default_yun_session}, session is #{session[:"#{default_yun_session}"]} ")
|
||||||
user = User.try_to_autologin(cookies[autologin_cookie_name]) if session[:"#{default_yun_session}"]
|
user = User.try_to_autologin(cookies[autologin_cookie_name])
|
||||||
start_user_session(user) if user
|
start_user_session(user) if user
|
||||||
user
|
user
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ module LoginHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def autologin_cookie_name
|
def autologin_cookie_name
|
||||||
edu_setting('autologin_cookie_name').presence || 'autologin'
|
edu_setting('autologin_cookie_name').presence || 'autologin_trustie'
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_autologin_cookie(user)
|
def set_autologin_cookie(user)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
class UsersController < ApplicationController
|
class UsersController < ApplicationController
|
||||||
|
|
||||||
before_action :load_user, only: [:show, :homepage_info]
|
before_action :load_user, only: [:show, :homepage_info, :sync_token]
|
||||||
before_action :check_user_exist, only: [:show, :homepage_info]
|
before_action :check_user_exist, only: [:show, :homepage_info]
|
||||||
before_action :require_login, only: %i[me list]
|
before_action :require_login, only: %i[me list]
|
||||||
skip_before_action :check_sign, only: [:attachment_show]
|
skip_before_action :check_sign, only: [:attachment_show]
|
||||||
|
@ -103,6 +103,15 @@ class UsersController < ApplicationController
|
||||||
render_error(ex.message)
|
render_error(ex.message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# 其他平台登录后,必须将token同步到forge平台,实现sso登录功能
|
||||||
|
def sync_token
|
||||||
|
return render_error('未找相关用户!') unless @user
|
||||||
|
|
||||||
|
token = Token.get_or_create_permanent_login_token(@user, 'autologin')
|
||||||
|
token.update_column(:value, params[:token])
|
||||||
|
render_ok
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def load_user
|
def load_user
|
||||||
@user = User.find_by_login(params[:id]) || User.find_by(id: params[:id])
|
@user = User.find_by_login(params[:id]) || User.find_by(id: params[:id])
|
||||||
|
|
|
@ -146,6 +146,7 @@ Rails.application.routes.draw do
|
||||||
get :system_update
|
get :system_update
|
||||||
get :me
|
get :me
|
||||||
get :list
|
get :list
|
||||||
|
post :sync_token
|
||||||
end
|
end
|
||||||
|
|
||||||
scope module: :users do
|
scope module: :users do
|
||||||
|
|
Loading…
Reference in New Issue