微信小程序登录程序(微信小程序登录程序在哪里)

dylinchen 1214 2022-12-20

本文目录一览:

微信小程序的登录流程

传统的web开发实现登陆功能,一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录。

服务端校验用户信息通过之后,下发一个代表登录态的 token 给客户端,以便进行后续的交互,每当token过期,用户都需要重新登录。

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

实现小程序用户体系主要涉及到openid和code的概念:

1.调用wx.login()方法会生成code,将code作为参数传递给微信服务器指定接口,就可以获取用户的openid。

2.对于每个小程序,微信都会将用户的微信ID映射出一个小程序 openid,作为这个用户在这个小程序的唯一标识。

微信小程序登陆具体实现的逻辑如下图所示:

更加详细的功能图如下所示:

实际业务中,我们还需要登录态是否过期,通常的做法是在登录态(临时令牌)中保存有效期数据,该有效期数据应该在服务端校验登录态时和约定的时间(如服务端本地的系统时间或时间服务器上的标准时间)做对比。

这种方法需要将本地存储的登录态发送到小程序的服务端,服务端判断为无效登录态时再返回需重新执行登录过程的消息给小程。

另一种方式可以通过调用wx.checkSession检查微信登陆态是否过期:

1.如果过期,则发起完整的登录流程

2.如果不过期,则继续使用本地保存的自定义登录态

这种方式的好处是不需要小程序服务端来参与校验,而是在小程序端调用AP,流程如下所示:


小程序微信登录

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和手机号+密码给后台

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

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

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

微信小程序登陆流程

官方说明为:

;secret=SECRETjs_code=JSCODEgrant_type=authorization_code

获取步骤:

(1)获得appid,secret,js_code

(2)用appid,secret,js_code分别替换如上接口地址的APPID、SECRET、JSCODE,其他不变,组装成完整的地址。

微信小程序获得session_key和openId(加解密、签名系列)

微信小程序获得session_key和openId(加解密、签名系列)

总结:从1,2,3步骤可知,只要获得appid,secret,js_code就可得到session_key和openId

appid为小程序ID

secret为小程序密钥(AppSecret)

获得方法:小程序后台登录网址:

打开小程序后台网址、注册、登录后,按如下图所示就可找到你的AppID和AppSecret。

微信小程序获得session_key和openId(加解密、签名系列)

注意:目前小程序个人不能注册,开放注册范围:企业、政府、媒体、其他组织;

当然用这个办法,个人也能注册了。

传送门:

微信小程序获得session_key和openId(加解密、签名系列)

(2)调用wx.login()接口获取登录凭证js_code

(3)调用wx.request()接口把js_code发送到服务器后台

(4)在服务器后台,已知appId、secret、js_code

然后调用如下官方提供的http接口,即可返回获取openId、session_key


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信电脑版不能打开小程序(电脑上微信不能打开小程序)
下一篇:微信小程序添加数据(微信小程序添加数据自动生成时间)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~