微信小程序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];
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM