22 lines
453 B
Ruby
22 lines
453 B
Ruby
|
class EmailLoginService
|
||
|
|
||
|
def login(email)
|
||
|
user = User.for_email!(email)
|
||
|
expiring_token = ExpiringToken.create_for_user(user)
|
||
|
Notifications.delay_login_request(expiring_token.user_id, expiring_token.token)
|
||
|
true
|
||
|
rescue User::InvalidEmailError
|
||
|
false
|
||
|
end
|
||
|
|
||
|
def validate(token)
|
||
|
expiring_token = ExpiringToken.active_for_token(token)
|
||
|
|
||
|
if expiring_token
|
||
|
expiring_token.use!
|
||
|
expiring_token.user
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|