单点登录关联账号

sso
anke1460 5 years ago
parent ad6821cf68
commit 08196faa1b

@ -8,6 +8,6 @@ class Oauth::CasController < Oauth::BaseController
def auth_hash
request.env['omniauth.auth']
JSON.parse(CGI.unescape(request.env['omniauth.auth'].extra.to_json))
end
end

@ -8,18 +8,17 @@ class Oauth::CreateORFindCasUserService < ApplicationService
def call
return [@user, false] if @user
open_user = OpenUsers::Cas.find_or_initialize_by(uid: @params.info['email']) do |u|
u.extra = @params.info
open_user = OpenUsers::Cas.find_or_initialize_by(uid: @params['user']) do |u|
u.extra = @params
end
return [open_user.user, false] if open_user.persisted?
@user = User.new(login: User.generate_login('C'), type: 'User', status: User::STATUS_ACTIVE)
@user = User.new(login: User.generate_login('C'), type: 'User', status: User::STATUS_ACTIVE, nickname: @params['comsys_name'], lastname: @params['comsys_name'])
ActiveRecord::Base.transaction do
gender = @params.dig('extra', 'raw_info', 'xb') == '女' ? 1 : 0
@user.save!
@user.create_user_extension!(gender: gender)
@user.create_user_extension!
open_user.user = @user
open_user.save!

@ -30,7 +30,7 @@ module Educoderplus
config.active_job.queue_adapter = :sidekiq
config.middleware.use OmniAuth::Builder do
provider :cas, url: 'http://localhost:3200'
provider :cas, url: 'https://urp.tfswufe.edu.cn/cas'
end
config.middleware.insert_before 0, Rack::Cors do

Loading…
Cancel
Save