微信小程序token失效 自动请求后端,适用于自动登录
2024-09-16 12:27:06
app.js
// app.js
App({
onLaunch() {
let token = wx.getStorageSync('token')
if (!token) {
wx.login({
success:ret=>{
let code = ret.code
wx.request({
url: 'http://www.zy.com/api/wxlogin',
method:"POST",
data:{code},
success:res=>{
console.log(res.data);
wx.setStorageSync('token', res.data.data)
}
})
}
})
} } })
laravel 路由:
//小程序静默登录
Route::post('wxlogin',[\App\Http\Controllers\LoginController::class,'wxLogin']);
控制器代码:
public function wxLogin(Request $request)
{
$code = $request->post('code');
$appid = 'wxcb2b0041e40f2585';
$appSecret= '913fd3ba36225deb6610ee389f439b29';
$url = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$appSecret&js_code=$code&grant_type=authorization_code";
$res = json_decode(file_get_contents($url), true); //返回openid,session_key
$getUserInfo = User::where('openid',$res['openid'])->first();
if ($getUserInfo) {
$userId = $getUserInfo->id;
} else {
$create['openid'] = $res['openid'];
$create['session_key'] = $res['session_key'];
$result = User::create($create);
$userId = $result->id;
}
$token=JwtService::createToken($userId);
return ['code'=>200,'msg'=>'ok','data'=>$token];
}
最新文章
- ASP.NET Aries DataGrid 配置表头说明文档
- Angularjs 跳转页面并传递参数的方法总结
- SQL存储过程的调用及写法
- CentOS 6.4 编译安装LLVM3.3,Clang和Libc++
- Robberies
- SQL Sever 身份验证 sa用户设置
- 【转】 .NET中STAThread和MTAThread
- css---使用class和id
- 对于Bootstrap的介绍以及如何使用
- 米扑科技的开源项目:sitemap-php 自动生成网站地图
- leetcode算法:Distribute Candies
- Apicloud学习第一天
- JavaEE JSP 学习笔记
- Linux系统构架 - HA集群配置
- POJ - 1821 单调队列优化DP + 部分笔记
- 打印机无法使用且无法重新安装,提示spooler service is not running
- Java-Runoob:Java 循环结构
- json 数据返回解密
- CentOS(Linux) - 安装软件笔记(总) - 开发环境安装顺序及汇总
- 5 pyspark学习---Broadcast&;Accumulator&;sparkConf