class JWTSessions::AccessToken
Attributes
csrf[R]
expiration[R]
payload[R]
store[R]
uid[R]
Public Class Methods
create(csrf, payload, store, expiration = JWTSessions.access_expiration)
click to toggle source
# File lib/jwt_sessions/access_token.rb, line 32 def create(csrf, payload, store, expiration = JWTSessions.access_expiration) new(csrf, payload, store, SecureRandom.uuid, expiration).tap do |inst| store.persist_access(inst.uid, inst.csrf, inst.expiration) end end
destroy(uid, store)
click to toggle source
# File lib/jwt_sessions/access_token.rb, line 38 def destroy(uid, store) store.destroy_access(uid) end
find(uid, store)
click to toggle source
AccessToken's find method cannot be used to retrieve token's payload or any other information but is intended to identify if the token is present and to retrieve session's CSRF token
# File lib/jwt_sessions/access_token.rb, line 45 def find(uid, store) token_attrs = store.fetch_access(uid) raise Errors::Unauthorized, "Access token not found" if token_attrs.empty? build_with_token_attrs(store, uid, token_attrs) end
new(csrf, payload, store, uid = SecureRandom.uuid, expiration = JWTSessions.access_expiration)
click to toggle source
# File lib/jwt_sessions/access_token.rb, line 7 def initialize(csrf, payload, store, uid = SecureRandom.uuid, expiration = JWTSessions.access_expiration) @csrf = csrf @uid = uid @expiration = expiration @payload = payload.merge("uid" => uid, "exp" => expiration.to_i) @store = store end
Private Class Methods
build_with_token_attrs(store, uid, token_attrs)
click to toggle source
# File lib/jwt_sessions/access_token.rb, line 53 def build_with_token_attrs(store, uid, token_attrs) new(token_attrs[:csrf], {}, store, uid) end
Public Instance Methods
destroy()
click to toggle source
# File lib/jwt_sessions/access_token.rb, line 15 def destroy store.destroy_access(uid) end
refresh_uid()
click to toggle source
# File lib/jwt_sessions/access_token.rb, line 23 def refresh_uid payload["ruid"] end
refresh_uid=(uid)
click to toggle source
# File lib/jwt_sessions/access_token.rb, line 19 def refresh_uid=(uid) self.payload["ruid"] = uid end
token()
click to toggle source
# File lib/jwt_sessions/access_token.rb, line 27 def token Token.encode(payload) end