在Facebook和Rails 3中提取cookie数据

Jon*_*ark 1 facebook ruby-on-rails

我正在使用Rails 3和Facebook Javascript SDK,当我登录cookie时创建.我希望能够使用Rails从此cookie中提取数据.

我有一个PHP代码,但我想使用Rails代码.下面用PHP编写的代码在Rails中是什么样的?

function get_facebook_cookie($app_id, $application_secret) {
  $args = array();
  parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
  ksort($args);
  $payload = '';
  foreach ($args as $key => $value) {
    if ($key != 'sig') {
      $payload .= $key . '=' . $value;
    }
  }
  if (md5($payload . $application_secret) != $args['sig']) {
    return null;
  }
  return $args;
}

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);
Run Code Online (Sandbox Code Playgroud)

小智 5

而不是重新发明轮子,使用支持Facebook的API的Ruby宝石之一.例如,使用Koala gem 的等价物看起来像:

require 'rubygems'
require 'koala'

FB_APP_ID = "<your-app-id">
FB_APP_SECRET = "<your-app-secret>"

@oauth = Koala::Facebook::OAuth.new(FB_APP_ID, FB_APP_SECRET)
info = @oauth.get_user_info_from_cookies(cookies) # parses and returns the entire hash

puts info.inspect
Run Code Online (Sandbox Code Playgroud)