当前位置:首页 > 问答 > 正文

微信授权 小程序登录 laravel 登陆_laravel 实现微信小程序用户快速登陆流程

🚀 微信小程序 + Laravel 快速登录流程指南(2025最新版) 🚀

📱 小程序端:用户点击登录

  1. 用户打开小程序,点击「微信一键登录」按钮 🔘
  2. 小程序调用 wx.login() 获取临时 code 💻
    wx.login({
      success: res => {
        if (res.code) {
          // 将 code 发送至后端 📩
          wx.request({
            url: 'https://your-domain.com/api/login',
            data: { code: res.code }
          });
        }
      }
    });

🛠️ Laravel 后端:处理登录请求

  1. 创建 API 路由 🌐
    routes/api.php 中添加:

    微信授权 小程序登录 laravel 登陆_laravel 实现微信小程序用户快速登陆流程

    Route::post('/login', 'AuthController@login');
  2. 编写控制器逻辑 🧠
    使用 GuzzleHttp 调用微信接口换取 openidsession_key

    use Illuminate\Support\Facades\Http;
    public function login(Request $request) {
      $code = $request->code;
      $wxResponse = Http::get("https://api.weixin.qq.com/sns/jscode2session", [
        'appid' => env('WECHAT_APPID'),
        'secret' => env('WECHAT_SECRET'),
        'js_code' => $code,
        'grant_type' => 'authorization_code'
      ]);
      $wxData = $wxResponse->json();
      $openid = $wxData['openid']; // 🔑 用户唯一标识
      // 查找或创建用户 👤
      $user = User::firstOrCreate(['wechat_openid' => $openid]);
      // 生成 Token 🎫(可结合 JWT)
      $token = $user->createToken('WeChatLogin')->plainTextToken;
      return response()->json(['token' => $token]);
    }

🔒 安全增强 tips

  • 🛡️ 后端务必验证 code 有效性(微信接口返回错误时需处理)
  • 📅 定期刷新 session_key 避免过期
  • 🔥 使用 HTTPS 保护数据传输

📚 参考文档(2025-08 更新)

完成!用户已无缝登录,体验丝滑如德芙 🍫

微信授权 小程序登录 laravel 登陆_laravel 实现微信小程序用户快速登陆流程

发表评论