zoukankan      html  css  js  c++  java
  • Zend Framework项目和Discuz单点登录

    Discuz6.0以前的单点登录是用passport来实现的。单点登录实现起来也方便。但Discuz7.0加入了Ucenter。所以实现单点登录与以前的passport不同。用了好几种方法还是无法实现。总不能一直用6.0的吧。所以下定决心一定要搞定7.0的单点登录。用ucenter的加入应用程序怎样都会提示通信失败。所以不得不去看文档和网上的一些方案。用了好几种方式都无法实现。

    最后在无耐中试了一下下面的方式。在没报希望的情况下,竟然可以。高兴之余还是告诉自己要看懂DISCUZ的源代码。不看源代码是不行的!放上代码。有博有要用的话可以参照下面的方式。

    /*
     *单点登录
     */
     public function synloginAction() {
      $time=time();
      $username="test_1";
      $password="123456";
      $uid=3;
      if(array_key_exists("shop_memberid",$_COOKIE)){
       $mrow=$this->memberdetail($_COOKIE["shop_memberid"]);
       if($mrow!=null){
        $username=$mrow["loginid"];
        $password=$mrow["loginpwd"];
        list($uid, $username, $password, $email)=uc_user_login($username,$password);
       }
      }
      $authcode=uc_authcode('action=synlogin&username='.$username.'&uid='.$uid.'&password='.$password.'&time="'.$time, 'ENCODE','H3qcU3W0f32a77q2N4v1B6J8c294c3ncH8d5T3kdb6EdT6d5icE4Wefan1cfhdK7');
      $url='http://localhost:8000/discuz/api/uc.php?time='.$time.'&code='.urlencode($authcode);
      $synstr='<script type="text/javascript" src="'.$url.'" reload="1"></script>';
      echo $synstr;
      $this->JsGoto("http://localhost:8000/discuz/");
     }

    博友有疑问的话可以留言!

  • 相关阅读:
    MongoDB的Spring-data-mongodb集成(Win10 x64) 第一章
    Linux 环境部署记录(三)
    onsubmit不起作用的原因
    sql server 将时间中的时分秒改为00:00:00
    js文件被浏览器缓存
    Action<>和Func<> 区别
    sql2008 express 实现自动备份
    Centos 7 无法上网的解决办法
    js 中的[] {}是什么意思
    js中var a={}什么意思
  • 原文地址:https://www.cnblogs.com/witer666/p/1587170.html
Copyright © 2011-2022 走看看