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

}

相关推荐
极限挑战哥10 小时前
共享电单车联营平台分账架构实践:二清合规与自动分账零人工方案
java·大数据·人工智能·微信小程序·架构·微信公众平台
云-缩影18 小时前
拆解微信小程序后端架构:ECS、RDS、SSL 和 VPC 怎么配合
微信小程序·架构·ssl
拖孩19 小时前
AI 帮我写的小程序上线 44 天:36 个人进了收银台,8 个人付钱
前端·后端·微信小程序
sinat_267611911 天前
用 AI 开发微信小程序(八):一个极简收纳工具的开发复盘
微信小程序·小程序
李纲明2 天前
微信小程序真机预览白屏或 request 失败:先核 request 合法域名与 TLS,再查体验版与本地缓存
缓存·微信小程序·小程序·小程序开发·devdiy·真机预览·合法域名
计算机毕设定制辅导-无忧学长3 天前
《基于物品协同过滤的闲置书换购微信小程序设计开发》
java·vue.js·spring boot·微信小程序·uniapp·闲置书换购微信小程序·物品协同过滤算法
ngaiwe3 天前
AA我来算小程序实践:把付款人、承担人和结算状态分开建模
微信小程序
上线再说4 天前
小程序图片处理从 2.9 秒到 420 毫秒:云函数冷启动的 5 个坑
微信小程序
沃达德软件4 天前
智慧教育教学资源管理系统(PC端+微信小程序)
微信小程序·小程序