Brak opisu

token.rb 527B

123456789101112131415161718192021
  1. class Token
  2. JWT_SECRET = Rails.application.secrets.jwt_secret
  3. JWT_ALGORITHM = Rails.application.secrets.jwt_algorithm
  4. attr_reader :user_id, :payload
  5. def initialize token
  6. @payload = JWT.decode(token, JWT_SECRET, JWT_ALGORITHM).first.with_indifferent_access
  7. @user_id = @payload[:user_id]
  8. end
  9. def valid?
  10. user_id.presence && Time.now < Time.at(@payload[:exp].to_i)
  11. end
  12. def self.encode user_id
  13. JWT.encode({ user_id: user_id, exp: (DateTime.now + 30).to_i }, JWT_SECRET, JWT_ALGORITHM)
  14. end
  15. end