Sha256: a0c435b2d2e0a3e54384e32ab410119f93f7c9a70865754884963031665fd8ae
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
module PrivatePub class FayeExtension def incoming(message, callback) if message["channel"] == "/meta/subscribe" authenticate_subscribe(message) elsif message["channel"] !~ %r{^/meta/} authenticate_publish(message) end callback.call(message) end private def authenticate_subscribe(message) subscription = PrivatePub.subscription(:channel => message["subscription"], :timestamp => message["ext"]["private_pub_timestamp"]) if message["ext"]["private_pub_signature"] != subscription[:signature] message["error"] = "Incorrect signature." elsif PrivatePub.signature_expired? message["ext"]["private_pub_timestamp"].to_i message["error"] = "Signature has expired." end end def authenticate_publish(message) if PrivatePub.config[:secret_token].nil? raise Error, "No secret_token config set, ensure private_pub.yml is loaded properly." elsif message["ext"]["private_pub_token"] != PrivatePub.config[:secret_token] message["error"] = "Incorrect token." else message["ext"]["private_pub_token"] = nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
private_pub-0.3.0 | lib/private_pub/faye_extension.rb |