public function login($name)
{
global $myviewwebsite;
$config = D('Api/Getplugmsg')->plug_config_get(31);
$config = $config['plug_config']['31'];
if ($config['line_login'] == 1){
$config['scope'] = 'profile';
$config['callback'] = "https://******.com/Home/Line_login/callback?http_website_domain_name=$myviewwebsite";
if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])){
return redirect(OAuth::$name($config)->getRedirectUrl());
}else{
return redirect(OAuth::$name($config)->setDisplay('mobile')->getRedirectUrl());
}
}else{
self::showJson(array('status'=>0,'msg'=>'插件未启用'));
}
}
public function callback()
{
global $myviewwebsite;
$config = D('Api/Getplugmsg')->plug_config_get(31);
$config = $config['plug_config']['31'];
$config['scope'] = 'profile';
$config['code'] = $_GET['code'];
$config['callback'] = "https://*****/Home/Line_login/callback?http_website_domain_name=$myviewwebsite";
$snsInfo = OAuth::line($config)->userinfo();
$code = rand(0, 10000) . time();
$third_login = array(
'openid' => $snsInfo['openid'],
'third_type' => $snsInfo['channel'],
'nick' => $snsInfo['nick'],
'avatar' => $snsInfo['avatar'],
'code' => $code,
'login_web'=>$myviewwebsite,
'msg'=>json_encode($snsInfo)
);
$type = $snsInfo['channel'];
if ($snsInfo) {
M('third_login')->add($third_login);
$state_type['login_web'] = $myviewwebsite;
return redirect("http://{$state_type['login_web']}/public/login-success?code=$code&type=$type");
}
}
public function codelogin(){
$code =self::$postget['code'];
$codedata=M('third_login')->where(array("code"=>$code,'status'=>0))->field('id,msg,login_web')->find();
$codedata['msg'] = json_decode($codedata['msg'],true);
if(!empty($codedata['msg']['nick'])){
$savedata=array();
$codedata_username=rand(100000,999999);
if(strtolower($codedata['msg']['channel'])=='line' && !empty($codedata['msg']['openid'])){
$codedata_username=$codedata['msg']['openid'];
$savedata['linenick']=$codedata['msg']['nick'];
$savedata['linetoken']=$codedata['msg']['openid'];
$savedata['lineavatar']=$codedata['msg']['avatar'];
$where=array('linetoken'=>$savedata['linetoken']);
$userMsg=D('User')->finduser($where);
$plug_id=31;
$plug_str='line_login';
}elseif (strtolower($codedata['msg']['channel'])=='weixin' && !empty($codedata['msg']['openid'])){
$codedata_username=$codedata['msg']['openid'];
$savedata['linenick']=$codedata['msg']['nick'];
$savedata['linetoken']=$codedata['msg']['unionid'];
$savedata['lineavatar']=$codedata['msg']['avatar'];
$where=array('linetoken'=>$savedata['linetoken']);
$userMsg=D('User')->finduser($where);
$plug_id=28;
$plug_str='wechat_login';
}
$configmsg_all=D("Api/Getplugmsg")->plug_config_get($plug_id);
$ifcanuseplug=$configmsg_all['plug_config'][$plug_id][$plug_str];
if($ifcanuseplug==1){
if(!empty(self::$userInfo['id'])){
$user_id=self::$userInfo['id'];
if(!empty($userMsg['uid'])){
$usermsg_uid=$userMsg['uid'];
}else{
$usermsg_uid=$user_id;
}
$savedata['id']=$user_id;
if($user_id==$usermsg_uid){
$upRes=D('User')->updateUserMsg($savedata);
$userMsg=$upRes['userinfo'];
}
}else if(empty($userMsg)){
$savedata['avatar']=$codedata['msg']['avatar'];
$savedata['username']=$codedata['msg']['nick'];
$savedata['nickname']=$codedata['msg']['nick'];
$register_res=D("User")->register($savedata,0);
$userMsg=$register_res['userinfo'];
}else if(empty($userMsg['usertoken'])){
$showdata['status']=0;
$showdata['msg']='未知错误';
self::showJson($showdata); exit;
}
$userMsg=deal_image($userMsg,'avatar');
$login_obj=A("login");
if($userMsg['status']==1){
M('third_login')->where(array('id'=>$codedata['id']))->setField("status",1);
$userMsg['uid'] = $userMsg['id'];
self::$postget['name']=$userMsg['username'];
$login_obj->login_lost(2);
$showdata['status']=1;
$showdata['msg']="登录成功";
$showdata['usertoken']=$userMsg['usertoken'];
$showdata['userMsg']=$userMsg;
$showdata['savedata']=$savedata;
}else if($userMsg['status']==2){
self::$postget['name']=$userMsg['username'];
$login_obj->login_lost(0);
$showdata['status']=0;
$showdata['msg']='登录失败,您的账号被禁用了,请联系管理员';
$showdata['savedata']=$savedata;
}else{
self::$postget['name']=$userMsg['username'];
$login_obj->login_lost(0);
$showdata['status']=0;
$showdata['msg']='登录失败,您的账号和密码不正确';
$showdata['userMsg']=$userMsg;
$showdata['savedata']=$savedata;
}
$showdata['return_url']=$configmsg_all['plug_config'][$plug_id]['return_url'];
}else{
$showdata['status']=0;
$showdata['msg']='登录失败,插件不可用';
$showdata['savedata']=$savedata;
$showdata['userMsg']=$userMsg;
}
}else{
$login_obj=A("login");
$login_obj->login_lost(0);
$showdata['status']=0;
$showdata['msg']='登录失败,您的code值不正确';
}
self::showJson($showdata); exit;
}
https:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210430175818490.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1ZmVuZ25pYW5fYm9rZQ==,size_16,color_FFFFFF,t_70)