From c1b0061b8dbf263f054e5aef7c80b4be4a753015 Mon Sep 17 00:00:00 2001
From: Jasder <2053003901@@qq.com>
Date: Fri, 14 Aug 2020 18:19:00 +0800
Subject: [PATCH] ADD educode user login
---
app/assets/stylesheets/oauth.scss | 78 +++++++++++++++++++
app/controllers/accounts_controller.rb | 20 +----
app/controllers/application_controller.rb | 3 +-
app/controllers/concerns/register_helper.rb | 28 +++++++
app/controllers/oauth/educoder_controller.rb | 36 +++++++++
app/controllers/oauth_controller.rb | 22 ++++++
app/forms/oauth_educoder_form.rb | 37 +++++++++
app/libs/oauth_educoder.rb | 20 +++++
app/models/open_users/educoder.rb | 9 +++
app/views/layouts/oauth_register.html.erb | 13 ++++
app/views/oauth/register.html.erb | 54 +++++++++++++
config/initializers/assets.rb | 3 +-
config/routes.rb | 5 ++
public/images/oauth/backImg.png | Bin 0 -> 108035 bytes
public/images/oauth/logo.png | Bin 0 -> 9887 bytes
15 files changed, 309 insertions(+), 19 deletions(-)
create mode 100644 app/assets/stylesheets/oauth.scss
create mode 100644 app/controllers/concerns/register_helper.rb
create mode 100644 app/controllers/oauth/educoder_controller.rb
create mode 100644 app/forms/oauth_educoder_form.rb
create mode 100644 app/libs/oauth_educoder.rb
create mode 100644 app/models/open_users/educoder.rb
create mode 100644 app/views/layouts/oauth_register.html.erb
create mode 100644 app/views/oauth/register.html.erb
create mode 100644 public/images/oauth/backImg.png
create mode 100644 public/images/oauth/logo.png
diff --git a/app/assets/stylesheets/oauth.scss b/app/assets/stylesheets/oauth.scss
new file mode 100644
index 000000000..e862b52de
--- /dev/null
+++ b/app/assets/stylesheets/oauth.scss
@@ -0,0 +1,78 @@
+html{margin:0px;padding: 0px;font-size: 14px;font-family: "微软雅黑","宋体";}
+body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td {
+ margin: 0;
+ padding: 0;
+}
+.IndexContent{
+ height: 100vh;
+ width: 100%;
+ position: relative;
+ background-image: url('/images/oauth/backImg.png');
+ background-repeat: no-repeat;
+ background-size: cover;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+}
+.indexLogo{
+ width:80px;
+ margin-bottom: 35px;
+}
+.indexPanel{
+ width: 580px;
+ min-height: 400px;
+ background-color: #fff;
+ box-shadow: 0px 2px 10px 5px rgba(0,0,0,0.05);
+ border-radius: 5px;
+ box-sizing: border-box;
+}
+.indexTitle{
+ height: 75px;
+ line-height: 75px;
+ font-size: 18px;
+ color:#333;
+ text-align: center;
+ border-bottom: 1px solid #eee;
+}
+.indexInfo{
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+}
+.indexInfos{
+ padding:40px 60px;
+}
+.indexInfo > span{
+ color: #333;
+ font-size: 16px;
+ margin-top: 5px;
+}
+.indexInfo input{
+ width: 100%;
+ height:40px;
+ border-radius: 2px;
+ border:1px solid #eee;
+ margin-top: 5px;
+ padding:0px 0px 0px 8px;
+ outline: none;
+}
+.indexInfo .checkInfo{
+ height: 15px;
+ color: red;
+}
+.indexBtn{
+ text-align: center;
+ margin-top: 20px;
+}
+.indexSubmit{
+ width: 50%;
+ height: 32px;
+ line-height: 32px;
+ background-color: #1890FF;
+ border:none;
+ color: #fff;
+ border-radius: 2px;
+ cursor: pointer;
+ outline: none;
+}
diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb
index 23290d91c..8d51fddc8 100644
--- a/app/controllers/accounts_controller.rb
+++ b/app/controllers/accounts_controller.rb
@@ -13,24 +13,12 @@ class AccountsController < ApplicationController
password = params[:password]
platform = (params[:platform] || 'forge')&.gsub(/\s+/, "")
- @user = User.new(admin: false, login: username, mail: email, type: "User")
- @user.password = password
- @user.platform = platform
- @user.activate
-
ActiveRecord::Base.transaction do
- interactor = Gitea::RegisterInteractor.call({username: username, email: email, password: password})
- if interactor.success?
- gitea_user = interactor.result
- result = Gitea::User::GenerateTokenService.new(username, password).call
- @user.gitea_token = result['sha1']
- @user.gitea_uid = gitea_user['id']
- if @user.save!
- UserExtension.create!(user_id: @user.id)
- render_ok({user: {id: @user.id, token: @user.gitea_token}})
- end
+ result = autologin_register(username, email, password, platform)
+ if result[:message].blank?
+ render_ok({user: result[:user]})
else
- render_error(interactor.error)
+ render_error(result[:message])
end
end
rescue Exception => e
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 159832177..cd317e50f 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -9,7 +9,8 @@ class ApplicationController < ActionController::Base
include GitHelper
include LoggerHelper
include LoginHelper
-
+ include RegisterHelper
+
protect_from_forgery prepend: true, unless: -> { request.format.json? }
before_action :check_sign
diff --git a/app/controllers/concerns/register_helper.rb b/app/controllers/concerns/register_helper.rb
new file mode 100644
index 000000000..a5a5652ba
--- /dev/null
+++ b/app/controllers/concerns/register_helper.rb
@@ -0,0 +1,28 @@
+module RegisterHelper
+ extend ActiveSupport::Concern
+
+ def autologin_register(username, email, password, platform= '')
+ result = {message: nil, user: nil}
+
+ user = User.new(admin: false, login: username, mail: email, type: "User")
+ user.password = password
+ user.platform = platform
+ user.activate
+
+ interactor = Gitea::RegisterInteractor.call({username: username, email: email, password: password})
+ if interactor.success?
+ gitea_user = interactor.result
+ result = Gitea::User::GenerateTokenService.new(username, password).call
+ user.gitea_token = result['sha1']
+ user.gitea_uid = gitea_user['id']
+ if user.save!
+ UserExtension.create!(user_id: user.id)
+ result[:user] = {id: user.id, token: user.gitea_token}
+ end
+ else
+ result[:message] = interactor.error
+ end
+ result
+ end
+
+end
diff --git a/app/controllers/oauth/educoder_controller.rb b/app/controllers/oauth/educoder_controller.rb
new file mode 100644
index 000000000..17c5e5dc6
--- /dev/null
+++ b/app/controllers/oauth/educoder_controller.rb
@@ -0,0 +1,36 @@
+class Oauth::EducoderController < Oauth::BaseController
+ def bind
+ begin
+ login = params[:login]
+ callback_url = params[:callback_url]
+ oauth_token = params[:key]
+ raw_pay_load = params[:raw_pay_load]
+
+ ::OauthEducoderForm.new({login: login, oauth_token: oauth_token, callback_url: callback_url, raw_pay_load: raw_pay_load}).validate!
+
+ open_user= OpenUser::Educoder.find_by(uid: login)
+
+ if open_user.present? && open_user.user.present? && open_user.user.email_bind?
+ # 存在说明绑定了,验证信息是否齐全,
+ if current_user != open_user.user
+ logout_user
+ successful_authentication(open_user.user)
+ end
+
+ redirect_to callback_url
+ else
+ # 未存在需要进行绑定
+ if current_user.blank? || !current_user.logged?
+ # forge平台未登录
+ redirect_to oauth_register_path(user_id: login, callback_url: callback_url)
+ else
+ # forge平台已登录
+ OpenUsers::Educoder.create!(user: current_user, uid: login)
+ redirect_to callback_url
+ end
+ end
+ rescue WechatOauth::Error => ex
+ render_error(ex.message)
+ end
+ end
+end
diff --git a/app/controllers/oauth_controller.rb b/app/controllers/oauth_controller.rb
index ff5908cd0..f9c526fac 100644
--- a/app/controllers/oauth_controller.rb
+++ b/app/controllers/oauth_controller.rb
@@ -1,4 +1,6 @@
class OauthController < ApplicationController
+ layout "oauth_register", only: [:register]
+
DEFAULT_PASSWORD = "a12345678"
TOKEN_CALL_BACK = "/oauth/get_token_callback"
USER_INFO = "/oauth/userinfo"
@@ -51,4 +53,24 @@ class OauthController < ApplicationController
def get_token_callback
end
+
+ def register
+ # redirect_to params[:callback_url]
+ end
+
+ def auto_register
+ login = params[:login]
+ email = params[:email]
+ password = params[:login]
+ platform = params[:plathform] || 'forge'
+
+ result = autologin_register(login, email, password, platform)
+
+ if result[:message].blank?
+ redirect_to params[:callback_url]
+ else
+ render :action => "auto_register"
+ end
+ end
+
end
diff --git a/app/forms/oauth_educoder_form.rb b/app/forms/oauth_educoder_form.rb
new file mode 100644
index 000000000..2a6a0c385
--- /dev/null
+++ b/app/forms/oauth_educoder_form.rb
@@ -0,0 +1,37 @@
+class OauthEducoderForm
+ include ActiveModel::Model
+
+ attr_accessor :login, :oauth_token, :callback_url, :raw_pay_load
+
+ validates :login, presence: true
+ validates :oauth_token, presence: true
+ validates :callback_url, presence: true
+ validates :raw_pay_load, presence: true
+
+ validate :check_oauth_token!
+ validate :check_callback_url!
+
+ def checke_raw_pay_load!
+ secret = OauthEducoder.config[:access_key_secret]
+
+ before_raw_pay_load = "#{login}#{secret}#{Time.now.to_i/60-1}"
+ now_raw_pay_load = "#{login}#{secret}#{Time.now.to_i/60-1}"
+
+ if raw_pay_load != Digest::SHA1.hexdigest(now_raw_pay_load) || raw_pay_load != Digest::SHA1.hexdigest(before_raw_pay_load)
+ raise '你的请求无效值无效.'
+ end
+ end
+
+ def checke_raw_pay_load!
+ secret = OauthEducoder.config[:access_key_secret]
+ raise 'oauth_token值无效.' if oauth_token != secret
+ end
+
+ def check_callback_url!
+ request_host = URI.parse(callback_url).host
+ callback_url = OauthEducoder.config[:callback_url_host]
+
+ raise 'callback_url参数无效.' if request_host != callback_url
+ end
+
+end
diff --git a/app/libs/oauth_educoder.rb b/app/libs/oauth_educoder.rb
new file mode 100644
index 000000000..4e700d76d
--- /dev/null
+++ b/app/libs/oauth_educoder.rb
@@ -0,0 +1,20 @@
+module OauthEducoder
+ class << self
+ def config
+ educoder_config = {}
+
+ begin
+ config = Rails.application.config_for(:configuration).symbolize_keys!
+ educoder_config = config[:oauth][:educoder].symbolize_keys!
+ raise 'oauth educoder config missing' if educoder_config.blank?
+ rescue => ex
+ raise ex if Rails.env.production?
+
+ puts %Q{\033[33m [warning] educoder config or configuration.yml missing,
+ please add it or execute 'cp config/configuration.yml.example config/configuration.yml' \033[0m}
+ educoder_config = {}
+ end
+ educoder_config
+ end
+ end
+end
diff --git a/app/models/open_users/educoder.rb b/app/models/open_users/educoder.rb
new file mode 100644
index 000000000..8993fe59f
--- /dev/null
+++ b/app/models/open_users/educoder.rb
@@ -0,0 +1,9 @@
+class OpenUsers::EduCoder < OpenUser
+ def nickname
+ extra&.[]('nickname')
+ end
+
+ def en_type
+ 'educoder'
+ end
+end
diff --git a/app/views/layouts/oauth_register.html.erb b/app/views/layouts/oauth_register.html.erb
new file mode 100644
index 000000000..ac381eb4f
--- /dev/null
+++ b/app/views/layouts/oauth_register.html.erb
@@ -0,0 +1,13 @@
+
+
+ <%= csrf_meta_tags %>
+ <%= csp_meta_tag %>
+ <%= stylesheet_link_tag 'oauth', media: 'all','data-turbolinks-track': 'reload' %>
+
+
+
+ <%= image_tag('/images/oauth/logo.png') %>
+ <%= yield %>
+
+
+
diff --git a/app/views/oauth/register.html.erb b/app/views/oauth/register.html.erb
new file mode 100644
index 000000000..4b053b542
--- /dev/null
+++ b/app/views/oauth/register.html.erb
@@ -0,0 +1,54 @@
+
+
完善信息,进入比赛
+
+ <%= form_tag(oauth_auto_register_path, method: :post, class: 'form-inline search-form flex-1') do %>
+ <%= hidden_field_tag 'callback_url', params[:callback_url] %>
+
+
用户名:
+ <%= text_field_tag :mail, params[:login], placeholder: '请输入用户名', disabled: true, id: 'login' %>
+
+
+
+
邮箱:
+ <%= text_field_tag :mail, '', placeholder: '请输入绑定邮箱', maxlength: 40, id: 'email' %>
+
+
+
+
密码:
+ <%= password_field_tag :password, '', placeholder: '请输入账号密码', id: 'password' %>
+
+
+
+
+
+ <% end %>
+
+
+
diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb
index ef056bbef..60855f79e 100644
--- a/config/initializers/assets.rb
+++ b/config/initializers/assets.rb
@@ -12,5 +12,4 @@ Rails.application.config.assets.paths << Rails.root.join('vendor/assets')
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in the app/assets
# folder are already added.
-Rails.application.config.assets.precompile += %w( admin.js admin.css college.js college.css cooperative.js cooperative.css )
-
+Rails.application.config.assets.precompile += %w( admin.js admin.css college.js college.css cooperative.js cooperative.css oauth.css )
diff --git a/config/routes.rb b/config/routes.rb
index 1cfe1b2a3..00e27ed7f 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -13,6 +13,11 @@ Rails.application.routes.draw do
get 'auth/qq/callback', to: 'oauth/qq#create'
get 'auth/failure', to: 'oauth/base#auth_failure'
get 'auth/cas/callback', to: 'oauth/cas#create'
+
+ get 'oauth/bind', to: 'oauth/educoder#bind'
+ get 'oauth/register', to: 'oauth#register'
+ post 'oauth/auto_register', to: 'oauth#auto_register'
+
resources :edu_settings
scope '/api' do
diff --git a/public/images/oauth/backImg.png b/public/images/oauth/backImg.png
new file mode 100644
index 0000000000000000000000000000000000000000..450002fac841da432b15d1ad886c64eaa15278fc
GIT binary patch
literal 108035
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
z