使用openid登录到帝国CMS系统的方法,适用于登录开放平台

首先我们来看一下会员表字段

 

字段名 类型 解释 附加说明
userid int(11) 用户ID  
username varchar(30) 用户名  
password varchar(32) 用户密码  
rnd varchar(30) 随机认证码  
email varchar(50) 联系邮箱  
registertime datetime 注册时间  
groupid smallint(6) 会员组ID  
userfen int(11) 点数  
userdate int(11) 有效期  
money float(11,2) 金额  
zgroupid smallint(6) 到期后转向会员组ID  
havemsg tinyint(1) 是否有短信息 1为提示有短信息,0为不提示
checked tinyint(1) 是否审核 1为已审核,0为未审核
salt varchar(8) salt密码加密随机码

相关字段说明

涉及登陆的字段有username,password,rnd,salt,checked
username: 就是用户名不用说
rnd:是randomize的缩写,取得随机数的意思,记录中会员每登陆一次变一次,用这个随机数来判断当前登陆是否有效,用两个非IE内核浏览器登陆同一个会员,第一个登陆的被挤掉就是RND的效果。
checked:会员是否被审核
password,salt:共同用于密码会员密码验证

openid第一次连接帝国CMS 或者绑定帝国CMS账号

新浪微博,腾讯微博,QQ空间等等都会给一个openid,比如新浪微博的是weiboid,腾讯微博的是nickname,QQ空间给的是openid,无论第一次连接注册还是绑定原有帝国CMS账号都是绑定一个openid而已,所以在一般在帝国CMS主表新建一个字段用于储存openid;

以后的连接

以后的连接就简单了,获得返回的OPENID后搜索帝国CMS会员主表,如果有存在的OPENID就执行登陆,没有就执行注册或绑定,trylife用的登陆函数如下:openid已经是绑定的,所以函数更新下RND之后写COOKIE就可以;买过trylife插件的童鞋可以看下这个函数在,e\trylife/common/Dev/ecms-rd-common-functions.php

折叠PHP 代码
  1. function ecms_memberlogin($userid)  
  2. {  
  3.     global $empire,$user_tablename,$public_r,$user_groupid,$user_username,$user_userid,$user_email,$user_password,$user_dopass,$user_rnd,$user_registertime,$user_register,$user_group,$user_saltnum,$user_salt,$user_seting,$forumgroupid,$registerurl,$dbtbpre,$user_regcookietime,$user_userfen,$user_checked,$level_r;  
  4.     $r=$empire->fetch1("select * from ".$user_tablename." where ".$user_userid."='$userid' limit 1");  
  5.     $rnd=make_password(12);  
  6.     $sql=$empire->query("update ".$user_tablename." set ".$user_rnd."='$rnd' where ".$user_userid."='$userid' ");  
  7.     $logincookie=0;  
  8.     $set1=esetcookie("mlusername",$r[$user_username],$logincookie);  
  9.     $set2=esetcookie("mluserid",$r[$user_userid],$logincookie);  
  10.     $set3=esetcookie("mlgroupid",$r[$user_group],$logincookie);  
  11.     $set4=esetcookie("mlrnd",$rnd,$logincookie);  
  12.       
  13.     if$set1 && $set2 && $set3 && $set4 )  
  14.     {  
  15.         $re=1;    
  16.     }  
  17.     else  
  18.     {  
  19.         $re=0;  
  20.     }  
  21.       
  22.     return $re;  
  23. }  
Tags: 登录
cms大学,为帝国cms用户提供动力
Copyright © 2016 CmsDX.com All Rights Reserved.