什么?cursor帮我完成微信公众号登录的接口开发全流程

什么?cursor帮我完成微信公众号登录的nest接口开发

前言

在当前数字化浪潮中,微信公众号已成为众多企业和开发者拓展业务、积累用户的重要平台。随着用户需求的不断增长和业务的日益复杂,传统的登录方式已难以满足用户对便捷性和安全性的要求,网页接入微信公众号登录功能应运而生。

微信公众号登录不仅为用户提供了快速、安全的登录体验,还为开发者提供了丰富的用户信息和强大的社交能力,成为提升用户粘性和活跃度的关键手段。

接下来,本文将为您详细介绍网页接入微信公众号登录的实现方案。

首先,登录微信公众号平台,找到开发者设置,在这里填写对应的服务器信息,先可以本地调试,这里的url要后端去编写一个接口去响应,token要跟环境变量一致才会校验成功

url可以使用vscode的端口转发,不用去折腾其他,简单高效,当然你也可以选择你熟悉的方式去进行接口转发~

打印最终的结果

创建一个接口wechat/check来响应微信公众号上配置服务器响应token

在原本的user上写,比较乱,让cursor重新创建一个目录,按照nest的命令创建的代码目录和规范去创建

创建的目录如下,还是比较清晰的

踩坑点

微信公众号一直报token无效,这是由于nest项目,统一返回的数据格式,微信校验跟他返回的不一致,这里希望微信可以返回对应的提示,对接体验确实不好(大家都应该这样认为的)

最终正确的返回结果,不要踩坑了

解决方案:

在拦截器将这个路径不按照项目统一的返回格式,这样就没有问题啦~

接下来就是完成二维码返回,提供给前端扫码使用

typescript 复制代码
// 返回微信公众号登录的二维码  
    async getWechatQrcode(sceneStr: string) {

        const appId = this.configService.get<string>('WECHAT_APP_ID');  
        const appSecret = this.configService.get<string>('WECHAT_APP_SECRET');

        // 获取 access_token  
        const tokenUrl = `<https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid>=${appId}&secret=${appSecret}`;  
        const tokenRes = await axios.get(tokenUrl);  
        const accessToken = [tokenRes.data](http://tokenRes.data).access_token;  
        console.log("🚀 ~ WechatService ~ getWechatQrcode ~ appId:", appId, appSecret, accessToken)

        // 创建二维码  
        const payload = {  
            expire_seconds: 300,  
            action_name: 'QR_STR_SCENE',  
            action_info: {  
                scene: {  
                    scene_str: sceneStr,  
                },  
            },  
        };

        const qrRes = await [axios.post](http://axios.post)(  
            `<https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token>=${accessToken}`,  
            payload  
        )  
        const ticket = [qrRes.data](http://qrRes.data).ticket;  
        console.log("🚀 ~ WechatService ~ getWechatQrcode ~ ticket:", [qrRes.data](http://qrRes.data))

        return {  
            qrCodeUrl: `<https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket>=${encodeURIComponent(ticket)}`,  
            sceneStr,  
        };  
    }  

后续的流程就是轮询二维码,微信接口回调,拿到唯一的openId,nest后端创建账户并把账户信息返回,完成登录

总结

熟悉微信公众号登录的,可以轻松接入,不熟悉的小白,可能第一步配置服务器就劝退了,大致的流程就是这样,如果还有不清楚的地方可以在评论区留下你的评论~

相关推荐
<花开花落>3 小时前
Cursor 的 MCP 应用:mysql-mcp-server
mysql·cursor·mcp
roamingcode12 小时前
IncSpec 面向 AI 编程助手的增量规范驱动开发工具
人工智能·agent·claude·cursor·fe·规范驱动开发
九歌AI大模型1 天前
白嫖完两个 Kiro 账号,我终于搞懂Spec驱动的AI编程范式了
ai编程·cursor·trae
极客密码1 天前
也是吃上细糠了。用上了Claude Code的无限中转API
ai编程·claude·cursor
凯小默2 天前
cursor 跟 vscode 编辑器里面怎么打开绘制 drawio 的文件?
vscode·draw.io·cursor
方始终_3 天前
用Spec-kit踩完3个坑后才明白,Constitution才是真正的起点!
ai编程·cursor
磊磊磊磊磊3 天前
一周做了个文章排版工具,分享下如何高效省钱用AI!
ai编程·产品·cursor
ckm紫韵3 天前
Cursor 与 IDEA 互相跳转教程
java·ide·intellij-idea·cursor·ai工具
Karl_wei4 天前
AI 只会淘汰不用 AI 的程序员🥚
aigc·ai编程·cursor
路西法015 天前
Office-Word-MCP-Server在Cursor中使用方法
cursor·mcp