lwqzx_auth 0.1.6 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/lwqzx_auth/application_controller.rb +17 -1
- data/app/controllers/lwqzx_auth/auth_controller.rb +29 -13
- data/app/models/lwqzx_auth/remember.rb +10 -0
- data/app/views/lwqzx_auth/auth/login.html.slim +11 -30
- data/lib/lwqzx_auth/version.rb +1 -1
- metadata +19 -8
- data/app/jobs/lwqzx_auth/application_job.rb +0 -4
- data/app/mailers/lwqzx_auth/application_mailer.rb +0 -0
- data/app/models/lwqzx_auth/application_record.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8c9ac0050837dc3ba05208b6cf877256463594c799cf4b137670145dedc574f
|
4
|
+
data.tar.gz: ec8eddbbdddf5b3e47c56ae84dfa96631775be444fafbdb0188b0ce764e61d80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3518aff0e40db0abf15db0eb3118eb732ad0649c984adcb8bdbc3157c4070db343a1ac76869612e7a1d21ca336e379ad03e6d63c819fa1656768b38f4673a087
|
7
|
+
data.tar.gz: '08cbd3dc914637acf9d81e091f1154596ab2323fe4a4a346c8d07c88f6cb225341cc5714936fc36db17e815224ba1d2107370694c20420910c86b4aa50d91090'
|
@@ -1,6 +1,22 @@
|
|
1
1
|
module LwqzxAuth
|
2
2
|
class ApplicationController < ::ApplicationController
|
3
3
|
protect_from_forgery with: :exception
|
4
|
-
|
4
|
+
before_action :check_me
|
5
|
+
def check_me
|
6
|
+
auth_token = cookies.signed[:auth_token]
|
7
|
+
unless auth_token.blank?
|
8
|
+
one = Remember.where(token: auth_token).first
|
9
|
+
if one
|
10
|
+
if one.expired > Time.now.to_i
|
11
|
+
session[:login] = one.login
|
12
|
+
session[:realname] = one.name
|
13
|
+
session[:groups] = one.groups
|
14
|
+
else
|
15
|
+
cookies.delete(:auth_token)
|
16
|
+
one.delete
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
5
21
|
end
|
6
22
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_dependency "lwqzx_auth/application_controller"
|
2
|
+
require "rest-client"
|
2
3
|
|
3
4
|
module LwqzxAuth
|
4
5
|
class AuthController < ApplicationController
|
@@ -7,6 +8,13 @@ module LwqzxAuth
|
|
7
8
|
|
8
9
|
def logout
|
9
10
|
flash[:notice]="你已经登出"
|
11
|
+
|
12
|
+
auth_token = cookies[:auth_token]
|
13
|
+
unless auth_token.blank?
|
14
|
+
one = Remember.where(token: auth_token).first
|
15
|
+
cookies.delete(:auth_token)
|
16
|
+
one.delete if one
|
17
|
+
end
|
10
18
|
reset_session
|
11
19
|
redirect_to main_app.root_path
|
12
20
|
end
|
@@ -19,12 +27,26 @@ module LwqzxAuth
|
|
19
27
|
|
20
28
|
login = params[:login]
|
21
29
|
psd = params[:password]
|
30
|
+
|
22
31
|
hsh = lauth(login,psd)
|
23
|
-
if hsh.blank?
|
32
|
+
if hsh["name"].blank?
|
24
33
|
redirect_to login_path , alert: "用户信息有误"
|
25
34
|
else
|
26
|
-
|
27
|
-
|
35
|
+
login = hsh["login"]
|
36
|
+
name = hsh["name"]
|
37
|
+
groups = hsh["user_group"]
|
38
|
+
|
39
|
+
#rememberme = params[:rememberme]
|
40
|
+
#if rememberme == "yes"
|
41
|
+
# token = SecureRandom.urlsafe_base64
|
42
|
+
# cookies.signed[:auth_token] = token
|
43
|
+
# Remember.create(token: token, login: login, name: name, groups: groups,expired: 7.days.from_now.to_i)
|
44
|
+
#else
|
45
|
+
# auth_token = cookies[:auth_token]
|
46
|
+
# cookies.delete(:auth_token)
|
47
|
+
# Remember.where(token: auth_token).delete
|
48
|
+
#end
|
49
|
+
|
28
50
|
session[:login] = login
|
29
51
|
session[:realname] = name
|
30
52
|
session[:groups] = groups
|
@@ -33,17 +55,11 @@ module LwqzxAuth
|
|
33
55
|
end
|
34
56
|
|
35
57
|
private
|
58
|
+
|
36
59
|
def lauth(login,passwd)
|
37
|
-
lurl = "http://www.lwqzx.sdedu.net/kernel/net_school/
|
38
|
-
|
39
|
-
|
40
|
-
content=res2.body.encode("UTF-8","GB2312")
|
41
|
-
doc = Nokogiri::HTML(content)
|
42
|
-
return {} if doc.include?("login_submit")
|
43
|
-
uname = doc.css("span.tt1 a:nth-child(1)").text
|
44
|
-
groups = doc.css("span.tt1 a:nth-child(5)")[0]["title"]
|
45
|
-
groups=groups.gsub("[","").gsub("]","").split("@").compact.reject(&:empty?)
|
46
|
-
return {login: login, name: uname, groups: groups}
|
60
|
+
lurl = "http://www.lwqzx.sdedu.net/kernel/net_school/core/jslogin.php"
|
61
|
+
res = ::RestClient.post lurl,{login: login, password: passwd}
|
62
|
+
return JSON.parse(res.body)
|
47
63
|
end
|
48
64
|
|
49
65
|
end
|
@@ -1,39 +1,20 @@
|
|
1
1
|
h2.text-center =<> icon("fas","user") + ' 登 录'
|
2
2
|
br
|
3
3
|
.row
|
4
|
-
.col-
|
5
|
-
.col-sm-4
|
4
|
+
.col-12.col-md-4.offset-md-4.align-self-center
|
6
5
|
= form_tag auth_path, role: "form", class: "loginForm card form-horizontal" do
|
7
6
|
.card-body
|
8
|
-
strong 登录名
|
7
|
+
p: strong 登录名
|
8
|
+
div = text_field_tag :login,nil,class: "form-control login"
|
9
9
|
br
|
10
|
-
|
11
|
-
|
12
|
-
strong 密码:
|
13
|
-
br
|
14
|
-
= password_field_tag :password,nil, class: "form-control"
|
10
|
+
p: strong 密码
|
11
|
+
div = password_field_tag :password,nil, class: "form-control password"
|
15
12
|
p.text-center
|
16
13
|
a.rucaptcha-image-box href="#" = rucaptcha_image_tag
|
17
14
|
p.text-center = rucaptcha_input_tag(class: 'form-control code',placeholder: "输入验证码")
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
javascript:
|
25
|
-
javascript:
|
26
|
-
$(".loginForm").submit(function(event){
|
27
|
-
if($("input.code").val()==""){alert("请填写验证码");return false;};
|
28
|
-
if($("input.login").val()==""){alert("登录名不能为空");return false;};
|
29
|
-
if($("input.password").val()==""){alert("密码不能为空");return false;};
|
30
|
-
});
|
31
|
-
|
32
|
-
$("a.rucaptcha-image-box").click(function(e){
|
33
|
-
e.preventDefault();
|
34
|
-
btn = $(e.currentTarget);
|
35
|
-
img = btn.find('img:first');
|
36
|
-
currentSrc = img.attr('src');
|
37
|
-
img.attr('src', currentSrc.split('?')[0] + '?' + (new Date()).getTime());
|
38
|
-
return false;
|
39
|
-
});
|
15
|
+
/p.text-center
|
16
|
+
=<> check_box_tag :rememberme, "yes", false
|
17
|
+
| 记住7天
|
18
|
+
div.mt-3
|
19
|
+
= submit_tag '登录', class: "btn-block btn-primary btn btn-lg"
|
20
|
+
/.card-footer
|
data/lib/lwqzx_auth/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lwqzx_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zxy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2020-12-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.1'
|
13
27
|
description: auth function into host app.
|
14
28
|
email:
|
15
29
|
- zxy@qq.com
|
@@ -26,9 +40,7 @@ files:
|
|
26
40
|
- app/controllers/lwqzx_auth/application_controller.rb
|
27
41
|
- app/controllers/lwqzx_auth/auth_controller.rb
|
28
42
|
- app/helpers/lwqzx_auth/application_helper.rb
|
29
|
-
- app/
|
30
|
-
- app/mailers/lwqzx_auth/application_mailer.rb
|
31
|
-
- app/models/lwqzx_auth/application_record.rb
|
43
|
+
- app/models/lwqzx_auth/remember.rb
|
32
44
|
- app/views/lwqzx_auth/auth/login.html.slim
|
33
45
|
- config/initializers/rucaptcha.rb
|
34
46
|
- config/routes.rb
|
@@ -55,8 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
67
|
- !ruby/object:Gem::Version
|
56
68
|
version: '0'
|
57
69
|
requirements: []
|
58
|
-
|
59
|
-
rubygems_version: 2.7.7
|
70
|
+
rubygems_version: 3.1.4
|
60
71
|
signing_key:
|
61
72
|
specification_version: 4
|
62
73
|
summary: add auth function to host application.
|
File without changes
|
File without changes
|