class FayeJwt::Server

Attributes

secret[RW]

Public Class Methods

new(secret) click to toggle source
# File lib/faye-jwt/server.rb, line 7
def initialize(secret)
  self.secret = secret
end

Public Instance Methods

authenticate(message) click to toggle source
# File lib/faye-jwt/server.rb, line 22
def authenticate(message)
  payload, header = decode(message['Authorization'])
  return false if payload.nil?
  message['jwt'] = { 'payload' => payload, 'header' => header }
  true
end
decode(authorization) click to toggle source
# File lib/faye-jwt/server.rb, line 29
def decode(authorization)
  return nil if authorization.nil?
  type, access_token = authorization.split(' ')
  return nil if type.to_s.downcase != 'bearer' || access_token.nil?
  JWT.decode(access_token, secret, true) rescue nil
end
incoming(message, callback) click to toggle source
# File lib/faye-jwt/server.rb, line 11
def incoming(message, callback)
  message['error'] = 'Authentication failed.' unless authenticate(message)
  callback.call(message)
end
outgoing(message, callback) click to toggle source
# File lib/faye-jwt/server.rb, line 16
def outgoing(message, callback)
  message.delete('Authorization')
  message.delete('jwt')
  callback.call(message)
end