1、修复bug
2、后台栏目分模型划分 3、前台增加微信开发用户登录功能
This commit is contained in:
@@ -11,6 +11,7 @@ namespace app\common\controller;
|
||||
|
||||
class Fornt extends Base {
|
||||
|
||||
public $wechat_oauth;
|
||||
public function _initialize() {
|
||||
parent::_initialize();
|
||||
|
||||
@@ -27,6 +28,75 @@ class Fornt extends Base {
|
||||
|
||||
//主题设置
|
||||
$this->setThemes();
|
||||
|
||||
//微信访问时
|
||||
if ($this->isMobile() && $this->is_wechat()) {
|
||||
if (!session('oauth')) {
|
||||
$this->getOpentId();
|
||||
}else{
|
||||
$this->wechat_oauth = session('oauth');
|
||||
$this->assign('oauth', session('oauth'));
|
||||
}
|
||||
|
||||
//微信用户直接使用微信登录
|
||||
$this->WechatUser();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 微信用户登录
|
||||
*/
|
||||
protected function WechatUser(){
|
||||
if (!is_login()) {
|
||||
$openid = $this->wechat_oauth['openid'];
|
||||
//若系统内存在则直接登录,不存在不登录
|
||||
$result = model('User')->login($openid, '', 5);
|
||||
if ($result == -1) {
|
||||
$user = & load_wechat('User');
|
||||
$wechat_user = $user->getUserInfo($this->wechat_oauth['openid']);
|
||||
|
||||
$result = model('User')->register($openid, $openid, $openid, $openid.'@openid.com', true, array('openid'=>$openid,'nickname'=>$this->jsonName($wechat_user['nickname']),'headimgurl'=>$wechat_user['headimgurl']));
|
||||
}
|
||||
return $result;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
+----------------------------------------------------------
|
||||
* 过滤用户昵称里面的特殊字符
|
||||
+----------------------------------------------------------
|
||||
* @param string $str 待输出的用户昵称
|
||||
+----------------------------------------------------------
|
||||
*/
|
||||
protected function jsonName($str) {
|
||||
if($str){
|
||||
$return = '';
|
||||
$length = mb_strlen($str,'utf-8');
|
||||
for ($i=0; $i < $length; $i++) {
|
||||
$_tmpStr = mb_substr($str,$i,1,'utf-8');
|
||||
if(strlen($_tmpStr) >= 4){
|
||||
$return .= '';
|
||||
}else{
|
||||
$return .= $_tmpStr;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$return = 'wechat_'.time();
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
protected function getOpentId(){
|
||||
$oauth = &load_wechat('Oauth');
|
||||
$user_oauth = $oauth->getOauthAccessToken();
|
||||
if ($user_oauth) {
|
||||
session('oauth',$user_oauth);
|
||||
}else{
|
||||
$uri = $oauth->getOauthRedirect('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
|
||||
header("Location:".$uri);
|
||||
}
|
||||
}
|
||||
|
||||
//当前栏目导航
|
||||
|
||||
Reference in New Issue
Block a user