devise_code_authenticatable 0.2.3 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2948fdbc5b0bc87a1d08ab431cee7d121abbec208a82836f8662216341d575c7
4
- data.tar.gz: e08fee0dbc98b94e9b368dad6a96b41741698e7c9e9e802847c4ba556199732c
3
+ metadata.gz: '099b2a3088add3c99894f9da1b3591f17921fa587aef4a177fa61a1439e26f52'
4
+ data.tar.gz: 6d11c69d80ebe474c2092e1c71dbe99366c6a016dd233edb5a51a80276aa8e02
5
5
  SHA512:
6
- metadata.gz: 34bf27cd625727f12d09d1cefde526810274493d93db5cd42ce6d82ebe5e1944d5472e6950466d20850f53a369aace9ab61a3b87a9265404982f79b2167c587c
7
- data.tar.gz: 3b38efb389db6397e7818be56451ceaa7cfbb5dc4c1b4cdea87701ea7754589a2fea2476ee447a05c3bacacdf76d5ffd121ae75f2690c9b65873004377134e89
6
+ metadata.gz: dcc94d1f25ae0d6f9ec43747bb62ca12d4f75ef4230f75a00136a2ed61a93369054a0bd973aba6c8e86db0ca767ad3a62988f8dd5ef7a8763f02e4e16745718a
7
+ data.tar.gz: 151611f8921a90d82144a6fbc6c8acc6396a3651afd62a2b2a7e40890e70653fc69fa1cc99a193bbfbbec9095fde61d07bc985b7568ac1cbbdf19e6fa0bfbf2e
@@ -5,8 +5,8 @@ class Devise::LoginCodesController < DeviseController
5
5
  self.resource = warden.authenticate!(auth_options)
6
6
  set_flash_message!(:notice, :signed_in)
7
7
  sign_in(resource_name, resource)
8
- yield resource if block_given?
9
- respond_with resource, location: after_sign_in_path_for(resource)
8
+ redirect_to after_sign_in_path_for(resource)
9
+
10
10
  end
11
11
 
12
12
  def show
@@ -19,9 +19,8 @@ class Devise::LoginCodesController < DeviseController
19
19
  @login_code = LoginCode.find(params[:id])
20
20
  self.resource = @login_code.resource.send_code_login_instructions
21
21
  if successfully_sent?(resource)
22
+ redirect_to after_sending_login_code_path_for(resource_name, resource)
22
23
  end
23
-
24
- redirect_to after_sending_login_code_path_for(resource_name, resource)
25
24
  end
26
25
 
27
26
  protected
@@ -4,11 +4,12 @@ class DeviseCodeAuthenticatable::SessionsController < Devise::SessionsController
4
4
  self.resource = resource_class.send_code_login_instructions(resource_params)
5
5
  yield resource if block_given?
6
6
 
7
+ flash.clear
7
8
  if successfully_sent?(resource)
8
- respond_with(resource, location: after_sending_login_code_path_for(resource_name, resource))
9
+ respond_with resource, location: after_sending_login_code_path_for(resource_name, resource)
9
10
  else
10
11
  set_flash_message!(:alert, "send_mail_failed")
11
- respond_with(resource)
12
+ respond_with resource, location: after_sign_in_path_for(resource)
12
13
  end
13
14
 
14
15
  end
@@ -6,21 +6,18 @@ zh-CN:
6
6
  show:
7
7
  sign_in: 登录
8
8
  resend_code: 重新发送验证码
9
- user:
10
- signed_in: 登录成功
11
- send_instructions: "邮件发送成功!"
9
+ signed_in: 登录成功
10
+ send_instructions: 邮件发送成功!
12
11
  sessions:
12
+ send_instructions: 邮件发送成功!
13
+ send_mail_failed: 邮件发送失败
14
+ signed_in: 登录成功!
13
15
  new:
14
16
  send_code: 发送验证码
15
- user:
16
- send_instructions: 邮件发送成功!
17
- send_mail_failed: 邮件发送失败
18
- signed_in: 登录成功!
19
17
  mailer:
20
18
  login_code:
21
19
  submit: 登录验证码
22
20
  your_login_code: "您的登录验证码为: %{code}"
23
21
  failure:
24
- user:
25
- login_code_expired: 验证码过期,已重新发送验证码
26
- invalid_login_code: 验证码错误
22
+ login_code_expired: 该验证码已过期,请重新获取验证码
23
+ invalid_login_code: 验证码错误
@@ -0,0 +1,11 @@
1
+ module DeviseCodeAuthenticatable
2
+ module FailureAppExt
3
+ def redirect_url
4
+ if warden_message == :invalid_login_code
5
+ request.referrer || super
6
+ else
7
+ super
8
+ end
9
+ end
10
+ end
11
+ end
@@ -20,7 +20,7 @@ module DeviseCodeAuthenticatable
20
20
  return false
21
21
  end
22
22
 
23
- self.retry_times += 1; save
23
+ self.retry_times += 1; save!
24
24
  self.code == code
25
25
  end
26
26
 
@@ -18,6 +18,7 @@ module DeviseCodeAuthenticatable
18
18
  config.after_initialize do
19
19
  Devise::Mapping.send :prepend, DeviseCodeAuthenticatable::Mapping
20
20
  Devise::ParameterSanitizer.send :prepend, DeviseCodeAuthenticatable::ParameterSanitizer
21
+ Devise::FailureApp.send :prepend, DeviseCodeAuthenticatable::FailureAppExt
21
22
  end
22
23
  end
23
24
  end
@@ -6,7 +6,6 @@ module DeviseCodeAuthenticatable
6
6
 
7
7
  def authenticate!
8
8
  resource = mapping.to.find_for_authentication(authentication_hash)
9
- hashed = false
10
9
  login_code = params[scope].fetch "login_code", ""
11
10
 
12
11
  if resource.nil?
@@ -14,17 +13,17 @@ module DeviseCodeAuthenticatable
14
13
  end
15
14
 
16
15
  if resource.login_codes.empty?
17
- resource.send_code_login_instructions
18
16
  fail(:login_code_expired); return
19
17
  end
20
18
 
21
19
  if resource.login_codes.last.expired?
22
- resource.send_code_login_instructions unless resource.login_codes.last.used?
20
+ resource.expire_all_login_codes
23
21
  fail(:login_code_expired); return
24
22
  end
25
23
 
26
- if validate(resource){ hashed = true; resource.login_codes.last.verify(login_code) }
24
+ if validate(resource){ resource.login_codes.last.verify(login_code) }
27
25
  remember_me(resource)
26
+ yield resource if block_given?
28
27
  resource.after_code_authentication
29
28
  success!(resource)
30
29
  else
@@ -1,3 +1,3 @@
1
1
  module DeviseCodeAuthenticatable
2
- VERSION = '0.2.3'
2
+ VERSION = '0.2.6'
3
3
  end
@@ -3,6 +3,7 @@ module DeviseCodeAuthenticatable
3
3
  autoload :Mailer, 'devise_code_authenticatable/mailer'
4
4
  autoload :Mapping, 'devise_code_authenticatable/mapping'
5
5
  autoload :ParameterSanitizer, 'devise_code_authenticatable/parameter_sanitizer'
6
+ autoload :FailureAppExt, 'devise_code_authenticatable/failure_app_ext'
6
7
  module Controllers
7
8
  autoload :Sessions, 'devise_code_authenticatable/controllers/sessions'
8
9
  autoload :Helpers, 'devise_code_authenticatable/controllers/helpers'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_code_authenticatable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - vincentying15
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-04 00:00:00.000000000 Z
11
+ date: 2023-10-13 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Devise plugin to allow sign in by email sent code
14
14
  email:
@@ -30,6 +30,7 @@ files:
30
30
  - config/locales/zh-CN.yml
31
31
  - lib/devise_code_authenticatable.rb
32
32
  - lib/devise_code_authenticatable/controllers/helpers.rb
33
+ - lib/devise_code_authenticatable/failure_app_ext.rb
33
34
  - lib/devise_code_authenticatable/login_code.rb
34
35
  - lib/devise_code_authenticatable/mailer.rb
35
36
  - lib/devise_code_authenticatable/mapping.rb
@@ -50,7 +51,7 @@ licenses:
50
51
  metadata:
51
52
  allowed_push_host: https://rubygems.org
52
53
  source_code_uri: https://github.com/vincentying15/devise_code_authenticatable
53
- post_install_message:
54
+ post_install_message:
54
55
  rdoc_options: []
55
56
  require_paths:
56
57
  - lib
@@ -66,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
67
  version: '0'
67
68
  requirements: []
68
69
  rubygems_version: 3.1.6
69
- signing_key:
70
+ signing_key:
70
71
  specification_version: 4
71
72
  summary: devise_code_authenticatable
72
73
  test_files: []