29 lines
463 B
Ruby
29 lines
463 B
Ruby
class Mfa::TokenService < BaseTokenService
|
|
pattr_initialize [:user, :token]
|
|
|
|
MFA_TOKEN_EXPIRY = 5.minutes
|
|
|
|
def generate_token
|
|
@payload = build_payload
|
|
super
|
|
end
|
|
|
|
def verify_token
|
|
decoded = decode_token
|
|
return nil if decoded.blank?
|
|
|
|
User.find(decoded[:user_id])
|
|
rescue ActiveRecord::RecordNotFound
|
|
nil
|
|
end
|
|
|
|
private
|
|
|
|
def build_payload
|
|
{
|
|
user_id: user.id,
|
|
exp: MFA_TOKEN_EXPIRY.from_now.to_i
|
|
}
|
|
end
|
|
end
|