标题: ZF程序与Discuz!论坛通行证集成
haohappy
超级版主
Rank: 8Rank: 8
PHPEye站长


UID 2
精华 11
积分 110
帖子 283
翻译 6
原创 1
阅读权限 150
注册 2007-5-2
状态 离线
发表于 2007-12-15 13:36  资料  短消息  加为好友  添加 haohappy 为MSN好友 通过MSN和 haohappy 交谈
ZF程序与Discuz!论坛通行证集成

如果你的ZF网站想和Discuz!论坛共用一个用户表,希望在网站首页登录时能够同时登录论坛,可以这样做(以登录为例):
首先在Discuz管理后台->扩展设置->通行证设置

应用程序 URL 地址:http://www.yoursite.com  //登录后会跳转回这个页面
通行证私有密匙:bppyc368twdf  

其他具体设置请参看Discuz的说明文档。
http://www.discuz.net/usersguide/advanced_passport.htm


下面是代码示例:

PHP代码如下:
UserController.php

<?php
class UserController extends BaseController {
        
/**
        *        Login
        */
        
function loginAction() {
                
$this->view->message '';
                if (
$this->_request->isPost()) {                
                        
Zend_Loader::loadClass('Zend_Filter_StripTags');

                        
$f = new Zend_Filter_StripTags();
                        
$username $f->filter($this->_request->getPost('username'));
                        
$password $f->filter($this->_request->getPost('password'));
                        
$password md5($password);                        
                                        
                        
$this->user->Login($username,$password); 
                        if (
$this->user->isLogin) {                        //User logged-in successfully
                                                        
                                /** Integration of Discuz BBS **/
                                
$time time();                
                                
$row $this->user->fetchRow("username = '$username'");
                                
$email $row->email;
                                
                                
$autharray = array(                                        
                                        
'time'                => $time,
                                        
'username'        => $username,
                                        
'password'        => $password,
                                        
'email'                => $email                                
                                
);

                                
$passport_key 'bppyc368twdf';  //Your key
                                
                                
$action                'login';
                                
$auth                passport_encrypt(passport_encode($autharray), $passport_key);                                
                                
$verify                md5($action.$auth.$forward.$passport_key);

                                
$locationStr "http://www.yoursite.com/bbs/api/passport.php".
                    
"?action=$action".
                    
"&auth=".rawurlencode($auth).                
                    
"&verify=$verify";                
                            
                
$this->_redirect($locationStr);
                                
                        } 
                }
        }        
}
?>






互助共享,共同成长。
顶部
Dereky
新手上路
Rank: 1



UID 386
精华 0
积分 0
帖子 9
翻译 0
原创 0
阅读权限 10
注册 2007-9-19
状态 离线
发表于 2007-12-15 16:34  资料  短消息  加为好友 
前几天刚遇到这个问题,
尴尬的是,Discuz!返回的forward 是带有.php后缀的
比如 login/out/forward=http://bbs.demo.com/index.php
Zend Framework接受到这个参数 就直接跳到首页去了
怎么处理啊

顶部
haohappy
超级版主
Rank: 8Rank: 8
PHPEye站长


UID 2
精华 11
积分 110
帖子 283
翻译 6
原创 1
阅读权限 150
注册 2007-5-2
状态 离线
发表于 2007-12-18 14:20  资料  短消息  加为好友  添加 haohappy 为MSN好友 通过MSN和 haohappy 交谈


QUOTE:
原帖由 Dereky 于 2007-12-15 16:34 发表
前几天刚遇到这个问题,
尴尬的是,Discuz!返回的forward 是带有.php后缀的
比如 login/out/forward=http://bbs.demo.com/index.php
Zend Framework接受到这个参数 就直接跳到首页去了
怎么处理啊 ...

看看我这篇文章:
ZF开发的PHP应用与传统PHP应用集成的方法
http://www.phpeye.com/bbs/viewthread.php?tid=3





互助共享,共同成长。
顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2008-12-5 09:18

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.031908 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver