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

}

相关推荐
“负拾捌”3 小时前
python + uniapp 结合腾讯云实现实时语音识别功能(WebSocket)
python·websocket·微信小程序·uni-app·大模型·腾讯云·语音识别
换日线°21 小时前
NFC标签打开微信小程序
前端·微信小程序
菜鸟una1 天前
【微信小程序+Taro 3+NutUI 3】input (nut-input) 、 textarea (nut-texteare)类型使用避坑
前端·vue.js·微信小程序·小程序·taro
计算机毕设指导61 天前
基于微信小程序的校园二手交易系统【源码文末联系】
java·spring boot·spring·微信小程序·小程序·tomcat·maven
Java.慈祥2 天前
速通-微信小程序 2Day
微信小程序·小程序·前端框架
2501_933907212 天前
宁波小程序公司是什么?主要提供宁波微信小程序制作与服务吗?
科技·微信小程序·小程序
码云数智-大飞2 天前
微信商城小程序怎么弄?2026年主流小程序商城平台对比
微信小程序
计算机毕设指导62 天前
基于微信小程序的非物质文化遗产推广管理系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
软件聚导航3 天前
马年、我用AI写了个“打工了马” 小程序
人工智能·ui·微信小程序
大黄说说3 天前
微信商城小程序怎么弄?微信购物小程序怎么开通
微信小程序