微信小程序token失效 自动请求后端,适用于自动登录

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];
    }
复制代码

 

posted @   王越666  阅读(866)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示