同一台服务器上有一个 rails 项目(使用类似 projects.example.com 子域名)和 php 项目(使用 www.example.com 域名),目前用户信息都在 rails 项目里,有没有可能让 session 在这两个项目间共享?如何实现呢?
为何不放在一个文件夹当中,session id 就是文件名 而内容就是 session 了 两边都可以访问? 或者是 memcached 实现,天然实现 expiration 功能?
#6 楼 @huacnlee #7 楼 @tumayun 多谢各位,我现在是用@huacnlee 的方式保存主域名及 remember_token 在 cookie 里:
def sign_in(user)
cookies[:remember_token] = {
value: user.remember_token,
expires: 20.year.from_now,
domain: "example.com"
}
self.current_user = user
end
然后当前 user 为:
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
这样就可以通过 cookie 找到当前的 user.
那我如何在另外一个项目里通过 cookie 来找到当前的 user 呢?两个项目的数据库及 user 模型必须要是一样的么?
user_id
,和 token
( 将 user_id
+ 私密字符串
的 MD5 值 )user_id
和 token
取出,并把 user_id
+ 私密字符串
做 MD5 后与 token 对比,验证 user_id
是否被暴力修改过;user_id
调用 Rails 这边提供的 JSON 接口(比如 /users/:id.json)获得到用户的信息原谅我这个 rails 新手及 php 盲没有把问题说清楚吧,来说说我现在在的情况: 我有一个 rails 项目,里面已经有很多用户及数据了,然后现在有一个新的项目例如是 wordpress(别问我为什么是 wp! 暂时规定),我希望用户在登陆了 rails 项目后就自动登陆了 wp 项目,在 wp 项目里就可以提交信息留言等,如何实现?(所以我后面问@huacnlee如何在 wp 里获得 rails 项目里的登陆用户信息,目前正在看 json 中,如果谁不嫌累可以给我讲的更清楚些哈!)