forked from Gitlink/forgeplus
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
|
||||
user = nil
|
||||
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
|
||||
user
|
||||
end
|
||||
|
|
|
@ -6,7 +6,7 @@ module LoginHelper
|
|||
end
|
||||
|
||||
def autologin_cookie_name
|
||||
edu_setting('autologin_cookie_name').presence || 'autologin'
|
||||
edu_setting('autologin_cookie_name').presence || 'autologin_trustie'
|
||||
end
|
||||
|
||||
def set_autologin_cookie(user)
|
||||
|
@ -93,4 +93,4 @@ module LoginHelper
|
|||
session[:ctime] = Time.now.utc.to_i
|
||||
session[:atime] = Time.now.utc.to_i
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
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 :require_login, only: %i[me list]
|
||||
skip_before_action :check_sign, only: [:attachment_show]
|
||||
|
@ -103,6 +103,15 @@ class UsersController < ApplicationController
|
|||
render_error(ex.message)
|
||||
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
|
||||
def load_user
|
||||
@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 :me
|
||||
get :list
|
||||
post :sync_token
|
||||
end
|
||||
|
||||
scope module: :users do
|
||||
|
|
Loading…
Reference in New Issue