17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'app/controllers/magic/link/magic_links_controller.rb', line 17
def authenticate
email = params[:email].presence
token = params[:sign_in_token].presence
user = email && token && Magic::Link.user_class.find_by(email: email)
if token && send("#{Magic::Link.user_class.name.underscore}_signed_in?")
flash[:alert] = "You are already signed in"
redirect_to main_app.send(Magic::Link.after_sign_in_path)
elsif user && token_matches?(user) && token_not_expired?(user)
flash[:notice] = "You have signed in successfully"
user.update_columns(sign_in_token: nil, sign_in_token_sent_at: nil)
sign_in user
redirect_to main_app.send(Magic::Link.after_sign_in_path)
elsif email && token
flash[:alert] = "Your sign in token is invalid"
redirect_to magic_link.new_magic_link_path
end
end
|