🔐 微信登录接口文档

快速接入微信登录,支持PC扫码和H5授权两种模式,提供JWT和Token两种对接方式

概述

wxlogin平台为开发者提供简单易用的微信登录接口服务。通过我们的平台,您可以无需经过复杂的微信官方认证流程,快速为您的应用接入微信登录功能。

💡
核心优势:
• 无需企业认证,个人开发者即可使用
• 接入简单,3步即可完成对接
• 支持PC扫码、H5、微信内多种场景
• 数据加密传输,安全可靠
• 提供两种对接方式:Token查询 和 JWT解密

接入流程

1
注册账号
2
创建应用
3
获取AppID和密钥
4
配置回调地址
5
开始使用

快速开始

1. 注册并创建应用

首先需要在wxlogin平台注册账号,然后在"我的网站"中创建一个新的应用。创建成功后,您将获得唯一的 AppIDAppSecret

2. 配置回调地址

在应用设置中配置您的回调地址(PC返回地址 / H5返回地址),用于接收微信登录成功后的数据回调。

3. 选择对接方式

两种对接方式任选其一:

🔹 方式一:Token查询(推荐)
登录成功后URL返回 token 参数,通过token调用接口获取用户信息,无需解密,最简单。

🔹 方式二:JWT解密
登录成功后URL返回 data 参数,使用AppSecret解密JWT数据获取用户信息。

登录接口

PC扫码登录地址

适用于PC网站,跳转到二维码登录界面,用户扫码登录后,系统会携带 datatoken 参数跳转到后台配置的PC返回地址。

请求URL
// PC端扫码登录
https://wxlogin.com/jwt?appid={您的AppID}

H5登录地址

适用于微信H5网页,无需扫码,用户点击授权登录后,系统会携带 datatoken 参数跳转到后台配置的H5返回地址。

请求URL
// H5端登录
https://wxlogin.com/jwth5?appid={您的AppID}

请求参数

参数名类型必填说明
appidstring必填您在平台创建应用时获得的AppID
scopestring可选snsapi_userinfo 或 snsapi_base
tplstring可选扫码页面风格ID,默认是1,可选2、3
💡
scope参数说明:
snsapi_userinfo 需要用户点击授权按钮,可获得用户昵称和头像
snsapi_base 静默登录只获取openid

登录成功回调URL

用户扫码/授权登录成功后,系统会跳转到您在后台配置的回调地址,URL中携带 datatoken 两个参数:

回调URL示例
// 假设后台配置的PC返回地址为:https://note.5811.cn/main/return
// 登录成功后跳转到:
https://note.5811.cn/main/return?data=ZnpONXZkUlZD***UDgc6XJ&token=sdfwwUUISD234sdfe

// data: 加密的用户数据(用于JWT解密方式)
// token: 当前用户密钥(用于Token查询方式)

获取用户信息

扫码登录后,返回的URL中包含一个 token 参数。通过token调用下面的接口即可获取当前用户资料,无需解密,最简单的方式。

接口信息
// 通过token获取登录用户资料
接口地址:https://wxlogin.com/wxuser/userinfo
请求方式:POST
Head头部:Content-Type: application/json

// 请求参数(JSON Body)
{
    "token": "回调URL中获取的token值"
}

请求参数说明

参数名类型必填说明
tokenstring必填登录成功后回调URL中携带的token参数
返回数据示例
{
    "code": 200,
    "msg": "获取成功",
    "data": {
        "id": "672",
        "appid": "wxB2WA_9i2KK",
        "openid": "6a235gjyv2ZpnAuSZ8rMKXHdTygLb7wMAHdfM0KuLURmVwUtuhNdO09bGWBRi1A9",
        "unionid": null,
        "nickname": "曹え 5811",
        "sex": "0",
        "province": null,
        "city": null,
        "country": null,
        "headimgurl": "https://thirdwx.qlogo.cn/mmopen/vi_32/***oZB6jHEyIa3b9ee46xf8iaItypib0g8/132",
        "addtime": "2025-03-27 11:16:24",
        "logintime": "2025-10-24 11:05:27",
        "wx_openid": "o-B8Qt1OeLeIM2Yh8mJLiT3nulJg",
        "token": "qIeHaA1kCLfh4Wt0xHK_9FxYxrupjS9e"
    }
}

返回参数说明

参数名说明
id用户在平台上的唯一ID
appid所属应用ID
openid用户的openid(平台加密后的)
unionid开放平台的unionid(如有)
nickname微信昵称
sex性别(0未知/1男/2女)
headimgurl微信头像URL
wx_openid微信原始openid
token当前登录token

接收回调URL中的 data 参数,配合您的 AppSecret 进行JWT解密,直接得到用户信息的JSON数据。

解密后的JSON数据
{
    "appid": "wx8888888888",
    "openid": "AZf_FAVqS84myGfwQOuq6oIZZQIv5bU7171580072",
    "nickname": "曹え5811",
    "headimgurl": "https://thirdwx.qlogo.cn/mmopen/vi_32/***Ia3b9ee46xf8iaItypib0g8/132",
    "sex": "0"
}

解密参数说明

参数说明
appid应用id
openid用户的openid
nickname微信昵称
headimgurl微信头像
sex性别
💡
JWT解密说明:
• 回调URL中的 data 参数是一个JWT令牌
• 使用您的 AppSecret 作为密钥,算法为 HS256
• 解密后即可获得包含用户信息的JSON对象
• 具体解密代码请参考下方的代码示例

代码示例

Token方式(推荐)

使用Token方式,无需JWT解密,只需从回调URL获取token参数,然后调用API获取用户信息。

Node.js - Token方式完整示例
// npm install express axios

const express = require('express');
const axios = require('axios');
const app = express();

const APPID = '您的AppID';

// 首页 - 生成登录链接
app.get('/', (req, res) => {
    const loginUrl = `https://wxlogin.com/jwt?appid=${APPID}`;
    res.send(`<h1>微信登录示例</h1><a href="${loginUrl}">点击微信登录</a>`);
});

// 登录回调地址 - 接收token并获取用户信息
app.get('/callback', async (req, res) => {
    const { token, data } = req.query;

    if (!token) {
        return res.send('登录失败:缺少token参数');
    }

    try {
        // 通过token调用接口获取用户信息
        const response = await axios.post('https://wxlogin.com/wxuser/userinfo', {
            token: token
        }, {
            headers: { 'Content-Type': 'application/json' }
        });

        const result = response.data;

        if (result.code === 200) {
            const user = result.data;
            console.log('登录成功:', user.nickname, user.openid);
            
            // TODO: 在这里处理您的业务逻辑
            // 1. 查询数据库是否已有该openid的用户
            // 2. 如果没有,创建新用户
            // 3. 如果有,更新登录时间
            // 4. 生成session或JWT保持登录状态

            res.send(`<h1>登录成功!</h1><p>昵称:${user.nickname}</p><p>OpenID:${user.openid}</p><img src="${user.headimgurl}" width="100">`);
        } else {
            res.send(`获取用户信息失败:${result.msg}`);
        }
    } catch (error) {
        console.error('请求失败:', error.message);
        res.send('登录异常,请重试');
    }
});

app.listen(3000, () => {
    console.log('服务器运行在 http://localhost:3000');
});

JWT解密方式

使用JWT解密方式,需要在服务端使用AppSecret解密data参数。

Node.js - JWT解密方式示例
// npm install express jsonwebtoken

const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();

const APPID = '您的AppID';
const APP_SECRET = '您的AppSecret';

// 首页 - 生成登录链接
app.get('/', (req, res) => {
    const loginUrl = `https://wxlogin.com/jwt?appid=${APPID}`;
    res.send(`<h1>微信登录示例(JWT方式)</h1><a href="${loginUrl}">点击微信登录</a>`);
});

// 登录回调地址 - 解密JWT数据获取用户信息
app.get('/callback', (req, res) => {
    const { data } = req.query;

    if (!data) {
        return res.send('登录失败:缺少data参数');
    }

    try {
        // 使用AppSecret解密JWT数据
        const decoded = jwt.verify(data, APP_SECRET);
        
        console.log('解密后的用户数据:', decoded);
        // decoded 包含:appid, openid, nickname, headimgurl, sex

        // TODO: 处理您的业务逻辑
        res.send(`<h1>登录成功!</h1><p>昵称:${decoded.nickname}</p><p>OpenID:${decoded.openid}</p><img src="${decoded.headimgurl}" width="100">`);
    } catch (error) {
        console.error('JWT解密失败:', error.message);
        res.send('数据解密失败,请检查密钥配置');
    }
});

app.listen(3000, () => {
    console.log('服务器运行在 http://localhost:3000');
});

Token方式(推荐)

使用Token方式,无需JWT解密,最简单的对接方式。

PHP - Token方式完整示例

// config.php - 配置文件
$APPID = '您的AppID';
$APP_SECRET = '您的AppSecret';

// index.php - 登录页面
$loginUrl = "https://wxlogin.com/jwt?appid=" . $APPID;
echo '<a href="' . $loginUrl . '">点击微信登录</a>';

// callback.php - 登录回调页面
$token = isset($_GET['token']) ? $_GET['token'] : '';

if (empty($token)) {
    die('登录失败:缺少token参数');
}

// 通过token调用接口获取用户信息
$postData = json_encode(['token' => $token]);

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL            => 'https://wxlogin.com/wxuser/userinfo',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $postData,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_SSL_VERIFYPEER => false,
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);

if ($result && $result['code'] == 200) {
    $user = $result['data'];
    
    echo "登录成功!<br>";
    echo "昵称:" . $user['nickname'] . "<br>";
    echo "OpenID:" . $user['openid'] . "<br>";
    echo "<img src='" . $user['headimgurl'] . "' width='100'>";
    
    // TODO: 处理您的业务逻辑
    // 1. 查询数据库是否已有该openid的用户
    // 2. 如果没有,创建新用户
    // 3. 如果有,更新登录时间
    // 4. 设置session保持登录状态
    session_start();
    $_SESSION['user'] = $user;
    
} else {
    echo "获取用户信息失败:" . ($result['msg'] ?? '未知错误');
}
?>

JWT解密方式

使用JWT解密方式,需要使用AppSecret解密data参数。

PHP - JWT解密方式示例

// 使用 firebase/php-jwt 库
// composer require firebase/php-jwt

use Firebase\JWT\JWT;
use Firebase\JWT\Key;

$APPID = '您的AppID';
$APP_SECRET = '您的AppSecret';

// callback.php - 登录回调页面(JWT解密方式)
$data = isset($_GET['data']) ? $_GET['data'] : '';

if (empty($data)) {
    die('登录失败:缺少data参数');
}

try {
    // 使用AppSecret解密JWT数据
    $decoded = JWT::decode($data, new Key($APP_SECRET, 'HS256'));
    $user = (array) $decoded;
    
    // $user 包含:appid, openid, nickname, headimgurl, sex
    echo "登录成功!<br>";
    echo "昵称:" . $user['nickname'] . "<br>";
    echo "OpenID:" . $user['openid'] . "<br>";
    
    // TODO: 处理您的业务逻辑
    session_start();
    $_SESSION['user'] = $user;
    
} catch (Exception $e) {
    echo "JWT解密失败:" . $e->getMessage();
}
?>
⚠️
注意事项:
• 请将示例中的 您的AppID您的AppSecret 替换为您在平台创建应用时获取的实际值
• AppSecret 务必保密,不要暴露在前端代码中
• 回调地址必须与后台配置的地址一致
• 建议使用 HTTPS 协议确保数据传输安全

Skills 技能

🚀 一句话接入微信登录

下载 Skills 技能包,让 AI 工具自动帮你完成微信登录功能的开发

📥 下载 Skills 技能包

什么是 Skills?

Skills 是一种 AI 工具扩展包,下载后直接导入到您的 AI 开发工具中(如 Cursor、Trae 等),即可让 AI 自动理解 wxlogin 的登录接口规范,帮您快速生成完整的登录功能代码。

使用方法

1
下载Skills
2
导入AI工具
3
一句话描述需求
4
AI自动生成代码

AI 开发提示词

在使用 Cursor、Trae 等 AI 开发工具时,只需在提示词中加入以下内容,AI 即可自动参照文档完成登录功能开发:

登录功能使用第三方登录,参考文档:wxlogin第三方微信登录接入指南.md
Skills 下载地址:
https://md.5811.cn/docs/6a06937c404bb99dc115cacf

下载后直接使用即可,一句话使用 AI 工具即可增加登录功能!

回调处理

用户完成微信登录授权后,平台会将 datatoken 参数回调到您设置的回调地址(PC返回地址 / H5返回地址)。

⚠️
注意事项:
• 回调地址必须支持 HTTPS 协议
• 回调数据使用您的 AppSecret 加密,请妥善保管密钥
• 建议优先使用 Token 方式获取用户信息,流程更简单
• 回调地址需要在平台后台的"应用设置"中提前配置

错误码说明

错误码说明解决方案
10001AppID不存在请检查AppID是否正确
10002应用已禁用请联系管理员处理
20001数据解密失败请检查AppSecret是否正确
20002Token无效或已过期请重新获取token
💬
技术支持:
如遇到其他问题,请访问我们的网站获取帮助。