Memcached sessions and Facebook

Memcached makes an excellent session store for Facebook applications. Unfortunately, it doesn’t work out of the box with Facebooker. See how to fix that inside.</p>

By default, the Memcached session store doesn’t allow session keys with dashes in them. Since Facebook session identifiers include a dash, this causes an immediate error. Luckily, there is a simple fix. Add the following code as either an initializer or to your environment.rb file to get your Facebooker sessions running with memcached.

# add - as an okay key
class CGI
  class Session
    class MemCacheStore
      def check_id(id) #:nodoc:#
        /[^0-9a-zA-Z-]+/ =~ id.to_s ? false : true
      end
    end
  end
end

Don’t you love simple solutions to annoying problems?