devise_code_authenticatable 0.2.3 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []