2010-05-04 78 views
3

我有一个简单的Ruby on Rails应用程序,我想与现有的php网站集成。我只希望被php应用程序认证的用户可以访问我的Ruby on Rails应用程序(它应该在用户看来是同一个网站,在同一个域中,尽管如果我选择了它可以是不同的子域到) 这样做的最好方法是什么?在php和Ruby On Rails应用程序之间通过身份验证

感谢您的帮助,

+1

你好,李。如果其中一个答案对您有帮助,您可以将其标记为“有帮助”(从上/下箭头向上投票)。如果答复回答了您的问题,您可以将其标记为“已接受”(绿色复选标记)。 – 2010-05-15 10:53:42

+0

谢谢弗拉德,我已经标记了这两个答案有帮助:) 我仍在检查解决方案,所以我还没有选择一个。两者都非常有帮助。 – Lin 2010-05-15 15:36:22

回答

2

最简单的方法就是利用饼干。在PHP应用程序中,这个cookie被设置,并且RoR应用程序可以读取它的值。

但是有了cookie,您必须警惕安全性,因为cookie的内容可以手动设置,并且还可以复制cookie,这可以窃取其他人的cookie。

另一个选项可能是存储在数据库中的两个应用程序都可以使用的会话。此选项的优点是会话的内容存储在服务器上,并且不能更改。您唯一需要处理的是识别属于Cookie的用户。

3

保持用户登录的最常见方式是在用户的会话中存储类似current_user_id:777的内容。因此,最简单的方法是在Rails应用程序和PHP应用程序之间共享会话。然后,您必须使用相同的约定来存储登录用户的身份。

一种方法是使用memcached作为会话支持。

这种方法的问题:你可以在两个应用程序同时设置/读取同一个会话变量(但可以避免)。

参考文献:

Storing your php sessions using memcached

Usind memcache as rails session store

相关问题