authd/src/token.cr

32 lines
484 B
Crystal
Raw Normal View History

require "json"
class AuthD::Token
include JSON::Serializable
property login : String
property uid : Int32
def initialize(@login, @uid)
end
def to_h
{
:login => login,
:uid => uid
}
end
def to_s(key)
JWT.encode to_h.to_json, key, JWT::Algorithm::HS256
end
def self.from_s(key, str)
payload, meta = JWT.decode str, key, JWT::Algorithm::HS256
puts "PAYLOAD BELOW, BEWARE"
pp! payload
self.new payload["login"].as_s, payload["uid"].as_i
end
end