Skip to content

Commit d4833fe

Browse files
need to make signing in multiple times with the same email work
1 parent c616a48 commit d4833fe

File tree

3 files changed

+60
-13
lines changed

3 files changed

+60
-13
lines changed

app-rails/app/adapters/auth/mock_adapter.rb

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,57 @@ def initialize(uid_generator: -> { SecureRandom.uuid })
66
end
77

88
def self.provider_name
9-
@@provider_name
9+
"mock"
10+
end
11+
12+
def initiate_auth(email, password)
13+
case password
14+
when "wrong"
15+
raise Auth::Errors::InvalidCredentials.new("Incorrect password")
16+
when "unconfirmed"
17+
raise Auth::Errors::UserNotConfirmed.new("User not confirmed")
18+
when "mfa"
19+
return {
20+
challenge_name: "SOFTWARE_TOKEN_MFA",
21+
session: "mock-session"
22+
}
23+
end
24+
25+
uid = @users[email] ||= @uid_generator.call
26+
27+
{
28+
uid: uid,
29+
provider: "mock",
30+
token: generate_token(email)
31+
}
32+
end
33+
34+
def generate_token(email)
35+
# Return a dummy token — apps expecting a token can grab this
36+
JWT.encode({ user_id: email, exp: 24.hours.from_now.to_i }, "mock_secret_key")
1037
end
1138

1239
def create_account(email, password)
1340
if email.include?("UsernameExists")
1441
raise Auth::Errors::UsernameExists.new
1542
end
1643

44+
uid = @users[email] ||= @uid_generator.call
45+
46+
47+
1748
{
18-
uid: @uid_generator.call,
49+
uid: uid,
1950
confirmation_channel: "EMAIL",
2051
provider: "mock"
2152
}
2253
end
2354

2455
def change_email(uid, new_email)
56+
# No-op
2557
end
2658

2759
def forgot_password(email)
28-
if email.include?("UsernameExists")
29-
raise Auth::Errors::UsernameExists.new
30-
end
31-
3260
{
3361
confirmation_channel: "EMAIL"
3462
}
@@ -69,6 +97,7 @@ def verify_software_token(code, access_token)
6997
end
7098

7199
def disable_software_token(uid)
100+
# No-op
72101
end
73102

74103
def respond_to_auth_challenge(code, challenge)
@@ -78,7 +107,8 @@ def respond_to_auth_challenge(code, challenge)
78107

79108
{
80109
uid: @uid_generator.call,
81-
provider: "mock"
110+
provider: "mock",
111+
token: generate_token("challenge-user@example.com")
82112
}
83113
end
84114

app-rails/app/services/auth_service.rb

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,27 @@
22

33
class AuthService
44
def initialize(auth_adapter = nil)
5+
puts "HERERERE1"
6+
puts auth_adapter
7+
puts "___________"
58
@auth_adapter = auth_adapter || default_adapter
69
end
710

811
def default_adapter
9-
return Auth::MockAdapter.new if Rails.env.test?
10-
11-
if Rails.env.development? && ENV["COGNITO_CLIENT_SECRET"].to_s.empty?
12-
Auth::LocalAdapter.new
13-
else
12+
puts "HERERERERERE2"
13+
puts Rails.env.development?
14+
auth_service = ENV.fetch("AUTH_SERVICE") do
15+
Rails.env.test? || Rails.env.development? ? "mock" : "cognito"
16+
end
17+
puts auth_service
18+
puts "%%%%%%"
19+
case auth_service
20+
when "cognito"
1421
Auth::CognitoAdapter.new
22+
when "mock"
23+
Auth::MockAdapter.new
24+
else
25+
raise "Unsupported AUTH_SERVICE: #{auth_service}"
1526
end
1627
end
1728

app-rails/db/schema.rb

Lines changed: 7 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)