| 123456789101112131415161718192021 |
- class Token
- JWT_SECRET = Rails.application.secrets.jwt_secret
- JWT_ALGORITHM = Rails.application.secrets.jwt_algorithm
- attr_reader :user_id, :payload
- def initialize token
- @payload = JWT.decode(token, JWT_SECRET, JWT_ALGORITHM).first.with_indifferent_access
- @user_id = @payload[:user_id]
- end
- def valid?
- user_id.presence && Time.now < Time.at(@payload[:exp].to_i)
- end
- def self.encode user_id
- JWT.encode({ user_id: user_id, exp: (DateTime.now + 30).to_i }, JWT_SECRET, JWT_ALGORITHM)
- end
- end
|