当前位置: 首页 > news >正文

帝国cms微信小程序 微信授权登录api接口

<?php
header('Access-Control-Allow-Origin: *');
defined('ECMSAPI_MOD') or exit; // 防止直接仿问该接口文件
date_default_timezone_set("PRC");   //系统使用北京时间
$qianming=$public_r['add_login'];
require_once(ECMS_PATH."ecmsapi/_mod/wechat/vendor/autoload.php");
use \Firebase\JWT\JWT;
define('KEY', $qianming);
// 过滤非post方式请求
if(!$api->isPost()){
// 使用fun类是的json方法快速 输出json结构数据
$api->load('fun')->json(0 , '非法提交');
}
// 获取用户名并用RepPostVar函数过滤
$unionid = $api->post('unionid' , '' , '');
$qqopenid = $api->post('qqopenid' , '' , '');
// 获取是否开启验证码 并用intval函数过滤
$checkcode = $api->post('checkcode' , 0 , 'intval');
// 如果开启了验证码 先验证验证码是否正确
if($checkcode){
// 获取验证码并用RepPostVar函数过滤
$code = $api->post('code' , '' , 'RepPostVar');
// 验证码为空直接返回错误提示
if($code === ''){
$api->load('fun')->json(0 , '验证码不能为空');
}
// 用user类中的code方法 验证验证码是否正确 第一个参数填写login 表示当前验证的是登陆验证码
$isok = $api->load('user')->code('login' , $code); // $isok 将返回数字 -1 0 1 分别代表 -1超时 0失败 1成功
// 若没有通过验证将返回错误提示
if($isok !== 1){
$api->load('fun')->json(0 , $isok < 0 ? '验证码超时' : '验证码不正确');
}
$api->load('user')->code('login'); // 清理掉验证码
}

// print_r($unionid);
// print_r($qqopenid);
// 验证用户名与密码是否为空
if ($unionid === '' && $qqopenid === '') {
$api->load('fun')->json(0 , '参数错误');
}


// 定义查询条件 $map

$unionid="'$unionid'";
// 定义查询条件 $map
$map = '1=1';
if($unionid){
$map = 'unionid='.$unionid;
}


$isok = $api->load('db')->one('[!db.pre!]enewsmember' , '*' , $map);

$username = $isok['username'];

// 若没有通过验证 返回错误信息
if(!$isok){
// $api->load('fun')->json(0 , $api->load('user')->getError());
}

// 通过所有验证后 将提交的用户设置为登陆状态
$isok = $api->load('user')->setSession($username);
if(false === $isok){
// 设置失败后返回错误信息
$api->load('fun')->json(0 , $api->load('user')->getError());
}else{
// 设置成功后 获取用户数据
$user = $api->load('user')->one($username);
$nowtime = time();
$token = [
'iss' => 'https://www.aabc.com/', //签发者
'aud' => 'https://www.abc.com/', //jwt所面向的用户
'iat' => $nowtime, //签发时间
'nbf' => $nowtime + 10, //在什么时间之后该jwt才可用
'exp' => $nowtime + 2592000, //过期时间-10min
'data' => [
'userid' => $user['userid'],
'username' => $user['username'],
]
];
$jwt = JWT::encode($token, KEY);
$res['result'] = 'success';
$res['jwt'] = 'bearer'.$jwt;
//token放入user
$user = [
'token' => $res['jwt'],
'username' => $user['username'],
'userid' => $user['userid'],
'groupid' => $user['groupid'],
'email' => $user['email'],
'wxopenid' => $user['unionid'],
];

$api->load('fun')->json(1 , $user);
}

http://www.dtcms.com/a/569779.html

相关文章:

  • 地产公司做网站维护写代码么品牌网站建设最佳大蝌蚪
  • 工信部网站备案文件手机app免费下载
  • 南京专业网站设计公司价格佛山网站快速排名提升
  • css第一天
  • jquery 网站框架网站管理员在哪里
  • 网站seo在线诊断wordpress调用留言板
  • 【软考架构】案例分析-比较两种架构风格:面向对象风格和解释器风格。
  • uemo网站源码购物类网站建设
  • ymi 和 WowPacketParser 使用教程
  • 影刀RPA分析抖店用户消费行为,AI智能洞察,精准营销效果提升300%![特殊字符]
  • Oracle ADG ,DGBroker管理,异常断电重启主备库的状态
  • 推荐一下做年会视频的网站网址导航网址大全
  • 外贸仿牌AB轮询收款系统
  • 做网站是先做界面还是先做后台国内手机怎么上google浏览器
  • C++实现冒泡排序
  • redis实战day03(消息队列)
  • 网站优化怎么学怀化网站网站建设
  • 【Pandas】pandas Index objects PeriodIndex day_of_week
  • Flink Table API SQL 概念、常用 API 与工程落地
  • rag-mcp
  • 建筑人才网站关于建网站新闻
  • 【设计模式】UML和设计原则
  • 东莞网站开发找谁建筑网站建设公司
  • 2025进博会4310家展商名录
  • 手机软件开发网站个人网站名称有哪些
  • 名气特别高的手表网站遵义市做网站的地方
  • LNMT部署zrlog个人博客(动静分离集群)
  • 企业网站功能模块设计阜阳哪里有做网站的
  • 如何做网站赚流量钱织梦做中英文企业网站
  • 【Unet++ MobileNetv2语义分割部署至RK3588】模型训练→转换RKNN→开发板部署