小程序微信登录

小程序微信登录,第1张

1.用户点击微信授权,小程序端获取手机号

2.小程序端将手机号和code传给后台,

3.后台通过code获取openid

如果openid已经存在,返回用户信息

如果openid不存在,并且该手机号未和openid绑定,那么该openid和手机号均可用户登录,返回用户信息

如果openid不存在,并且该手机号已经和某个openid绑定了,那么返回错误信息

补充:

前端传给后台code,后台通过小程序的一个方法(使用code,小程序appid和secret)从微信获取唯一标识openid(或unionid)

1.前端传给后台code,后台(使用code,小程序appid和secret获取)从微信获取唯一标识openid(或unionid)

2.如果后台存在该openid用户,返回登录成功的参数

如果不存在该openid用户,返给前端openid和一个失败的标识

3.前端界面跳转,变成输入手机号和验证码界面。

如果手机号存在,登录成功,返回参数。并且如果没有绑定微信,那么绑定openid

如果手机号不存在,那么注册该手机号为用户,并且绑定openid

或者第三步骤为:

3.前端将openid和手机号+密码给后台

如果登录成功,返回登录成功参数,并且如果没有绑定微信,那么绑定微信

如果用户(手机号)存在,密码错误,提示密码错误

如果用户(手机号)不存在,那么注册该密码为登录密码

我遇到的情况是:{ errMsg: "cloud.callFunction:ok", result: null }

方法一:先检查是否在开发前安装好nods.js和npm;

在cmd输入:

node -v

npm -v

可以看到安装好的对应版本;

函数中使用 wx-server-sdk 需在对应云函数目录下安装 wx-server-sdk 依赖,可通过:

npm install --save wx-server-sdk@latest安装;

最后会提示:+wx-server-sdk@版本号。

成功安装依赖后,相应的云函数文件夹将生成一个package-lock.json文件。

再次上传并部署云函数:所有文件。

方法二:

在云端和本地上都要删除函数,再重新创建和上传,也许问题就会解决了!

方法三:

在云端上删除已经部署过的login函数:再次上传的时候可能会出现:

"Code": "ResourceNotFound.Function", "Message": "未找到函数版本,请创建后再...

然后此时在云端上新建函数,如下图:

再次上传并部署云函数,此时提醒函数已存在,不能重复上传,此时编译一下。

发现原本获取openid值为null的,现在能够成功获取到了用户的openid。

获取 openid 我是直接使用小程序云函数中的login函数,在开发中,我是直接写在主页面的js中,很多函数都需要openid的值,有时候能获取到,有时候又不行,调试之后发现是获取getopenid的函数是异步,不能通过 onLoad() 方法直接获取,当onload函数启动后,下面直接顺序执行,openid还没获取到,下面的函数已经在执行了,这就是异步问题了。

我们要在 APP.js 中调用获取 openid 云函数


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8126949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存