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 云函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)