移动端微信小程序获取用户的openid

资源信息 :

发布:2023-12-01 18:40:32  阅读:511

转载本资源必须注明出处,欢迎加入官群【445790831】

上传用户 :

资源归属:qiang

资源状态 :

资源状态:免费下载

资源好评 :

资源下载 :

qiang的头像

资源作者:【qiang】

个性签名:请输入个性签名___________

暂时使用的英文代码,后续会对微信登录进行封装。小程序的appid和秘钥自己申请哈。

注意:2023-12-15号以后的版本可替换英文代码为:微信小程序类.微信登录((登录状态)=>{调试输出(登录状态)})

参考如下:

2023-12-15号以后所用代码:
获取用户openid() {
    局部变量 appId = "*********"; // 小程序appid
    局部变量 appSecret = "*****************"; // 小程序秘钥
    // 微信登录
    微信小程序类.微信登录((登录状态)=>({
            跨平台类.网页访问("https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + appSecret + "&js_code=" + 登录状态["code"] + "&grant_type=authorization_code", "GET", "", "", "json", (网页访问成功回调) => {
                调试输出(网页访问成功回调);
                调试输出(网页访问成功回调["data"]["openid"]); // 用户openid
                调试输出(网页访问成功回调["data"]["session_key"]); // 会话秘钥
            });
    });
}
//2023-12-15号以前所用代码【也就是源码中所用代码】:
获取用户openid() {
    局部变量 appId = "*********"; // 小程序appid
    局部变量 appSecret = "*****************"; // 小程序秘钥
    // 微信登录
    uni.login({
        provider: "weixin",
        success: 定义函数 (loginRes) {
            // 登录成功 获取用户openid
            跨平台类.网页访问("https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + appSecret + "&js_code=" + loginRes["code"] + "&grant_type=authorization_code", "GET", "", "", "json", (网页访问成功回调) => {
                调试输出(网页访问成功回调);
                调试输出(网页访问成功回调["data"]["openid"]); // 用户openid
                调试输出(网页访问成功回调["data"]["session_key"]); // 会话秘钥
            });
        },
        fail: 定义函数 (err) {
            // 登录授权失败
            // err.code是错误码
        }
    });
}

默认排序
Generic placeholder image
Generic placeholder image
1348****4381 Time: 2023-12-05 10:35:11

微信官方好像是不建议把 秘钥 发给客户端的,好像有另外一个方法判断是否登录状态

Generic placeholder image
1348****4381 Time: 2023-12-05 10:36:34

https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/checkSessionKey.html

 

应该是用这个方法来判断用户是否已登录,一起封装

Generic placeholder image
qiang 回复 2楼 1348****4381 Time: 2023-12-05 11:55:09

这个源码是登录获取用户的openid,你发的这个是检测用户的登录状态,两者是不一样的。

Generic placeholder image
qiang 回复 1楼 1348****4381 Time: 2023-12-05 11:56:36

一般是放到后端来请求的,这里是为了更加直观的展示源码,把数据放到客户端,你需要自己完善开发。

Generic placeholder image
yjh Time: 2023-12-10 23:01:32

不错,谢谢,正好学习。

Generic placeholder image
yjh Time: 2023-12-14 08:56:39

appSecret 是不应该用在客户端。

Generic placeholder image
yjh Time: 2023-12-14 09:05:02

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系

然而因为小程序中的openid不可以直接使用需要用code(登录凭证)去换取openid

获取openid的思路

获取openid首先需要调用小程序的login方法获取小程序的登录凭证code,然后使用code向微信换取登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)

————————————————

版权声明:本文为CSDN博主「zgscwxd」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zgscwxd/article/details/134226378

Generic placeholder image
柯敏轩 回复 2楼 1348****4381 Time: 2024-02-01 17:57:33

这个是检测session_key的存活,两者是不一样的。



移动端微信小程序获取用户的openid