ADD sso login

This commit is contained in:
Jasder 2020-04-16 17:24:06 +08:00
parent d27af59a76
commit 210b35a3cb
4 changed files with 14 additions and 4 deletions

View File

@ -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

View File

@ -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

View File

@ -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])

View File

@ -146,6 +146,7 @@ Rails.application.routes.draw do
get :system_update
get :me
get :list
post :sync_token
end
scope module: :users do