论坛首页 Ruby版 rails

单一登录(php系统和rails 系统互联互通)

浏览 728 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2008-04-07
php 环境 用session记录用户状态, user表公用, session不是存放在表中的, php 是joomula环境中的系统, 直接session_start();
然后session赋值

rails 环境 也是用session记录用户状态, user表公用, session是用缺省:active_record_store存放在数据库中,
现在要做到2个环境互联互通,

解决思路:
思路1:

1, 用户不管从PHP还是Rails登录, 均在数据库里面建立session, 这种项目不需要加密, 同时记录客户端IP, 如果方便的话, 再生成一个唯一码附在session中;

2, 每次访问(不管从PHP还是Rails), 验证用户和IP, 更新session中的最近访问时间

3, 退出时清除session.

这个方法可能影响较大, 也许PHP中很多操作依赖session, 需要彻查代码, 依赖session的地方都要修改.


思路2

就是在页面中, 通过script做2次提交.
和httpclient提交是不是一样机理,
我在php这边用
$client = new HttpClient('192.168.1.100:3000');

$client->post('/account/login', array(
'login' => $user_email,
'password' => $user_password
));
if (!$client->get('返回路径')) {
die('An error occurred: '.$client->getError());
}
$pageContents = $client->getContent();
可以取到登录成功信息
在rails 这边用
response = Net::HTTP.post_form(URI.parse('http://192.168.1.100/?class=user&sub=logon_deal'),{ 'user_email' => params[:login], 'user_password'=>params[:password]})
也能取到登录成功信息.

但状态显示都不执行, 不能显示登录状态, 希望各位同学指教一二.
各位同学有什么更好建议, 或这么实现思路有问题么?
   
时间:2008-04-07
利用数据库+cookie模拟session,session_id写入cookie,因为cookie的值是唯一的,所以两边取得的session_id是一致的,利用同一张session表就可以读取写入公共的状态。
当然session表不能是那种存对象的表,而是普通的多列表格。
   
0 请登录后投票
时间:2008-04-08
最简单解决方式: 2边都用javascript.
<form id="user_login" name="user_login" method="POST">

<input id="user_email" name="user_email" type="text" />

<input id="user_password" name="user_password" type="password" />

<label>
<input id="remember_me" name="remember_me" type="checkbox" value=1 />
</label>
<span class="classify">记住我的帐号,下次访问直接登录</span>
<input type="button" name="submit_login" value="登录" onclick="doSubmit()"/>
</form>
<script language="javascript">

function doSubmit() {
var form = document.user_login;


// 在Rails中,先提交到PHP
alert("php登录提交开始");
form.action="http://server_name/?class=user&sub=logon_deal";
alert("php登录提交");
form.submit();
alert("php登录提交结束");
var form_rails = document.user_login;


//然后再提交到自己
form_rails.action="/account/login";
form_rails.submit();
}
</script>
   
0 请登录后投票
时间:2008-04-08
Ruby on Rails中文 wiki上面有一篇讨论在 Rails程序中整合 phpBB的文章,应该能给你解决一些关键问题的答案。

覆盖问题包括:通过php系统登录到rails程序,对php系统中的数据建立模型,获取php session 等

http://wiki.rubyonrailscn.org/rails/show/在Rails程序中整合phpBB论坛
   
0 请登录后投票
时间:2008-04-09
在php的页面里面嵌套一个rails的iframe页面,把用户名口令传过去进行登陆

rails的页面登陆成功以后啥也没有,就一个空白页面

把这个页面嵌到php页面的某个角落里面就好了.
   
0 请登录后投票
时间:2008-04-09
好似把信用卡的密码签在信用卡背面...

liujunsong 写道
在php的页面里面嵌套一个rails的iframe页面,把用户名口令传过去进行登陆

rails的页面登陆成功以后啥也没有,就一个空白页面

把这个页面嵌到php页面的某个角落里面就好了.
   
0 请登录后投票
论坛首页 Ruby版 rails

跳转论坛:
JavaEye推荐