帝国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);

}

相关推荐
汝生淮南吾在北1 天前
SpringBoot3+Vue3小区物业报修系统+微信小程序
微信小程序·小程序·vue·毕业设计·springboot·课程设计·毕设
静待雨落1 天前
如何在Taro项目中使用axios
微信小程序·taro
前端小黑屋1 天前
小程序直播挂件Pendant问题
前端·微信小程序·直播
汤姆yu1 天前
基于微信小程序的自习室座位预约系统
微信小程序·小程序
喝牛奶的小蜜蜂1 天前
微信小程序|云环境共享-使用指南
前端·微信小程序·ai编程
千寻技术帮1 天前
10379_基于SSM的校园跑腿服务平台
mysql·微信小程序·校园跑腿·ssm
fanruitian1 天前
微信小程序 springboot获取手机号
spring boot·微信小程序·notepad++
鲁Q同志1 天前
微信小程序调用上一页的方法(主包,分包)
微信小程序·小程序
风月歌1 天前
小程序项目之基于微信小程序的高校课堂教学管理系统源代码(源码+文档)
java·微信小程序·小程序·毕业设计·源码
计算机毕设指导62 天前
基于微信小程序的校园食堂点餐系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea