本篇文章给大家谈谈微信小程序获取用户信息登录,以及微信小程序获取用户登录态失败对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
微信小程序用户授权登录
1、appid: 微信小程序/公众号的唯一凭证,即 AppID。
获取途径:可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
用途:小程序的 AppID 相当于小程序平台的一个身份证,会在很多场景中使用,比如小程序的登录、授权等
2、openID: openID 是微信生态下 应用的唯一标识 , ,即同一个用户在不同的小程序下的openid是不同的。
获取途径:调用 auth.code2Session 接口,通过code(登录凭证,调用wx.login获取)+appid+appsecret(小程序密钥,获取方式和appid一样)可以换取openid,即 静默授权。
用途:用于在开发者系统中标识用户信息
3、UnionID:UnionID 是微信生态下 用户的唯一标识 ,换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。
获取途径:绑定了开发者帐号的小程序,可以通过以下途径获取 UnionID。
1)开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户授权。
2)小程序端调用云函数时,可在云函数中通过 Cloud.getWXContext 获取 UnionID。
用途:标识同一个微信开放平台下的用户,可用于去重判断
也就是我们常用的微信移动端/PC端之间的扫码登录,PC端用微信扫码登录,微信移动端确认授权登录后,应用可以从微信拿到用户的open id或union id,将微信获取的用户信息与自己账户体系中的用户身份进行关联;
需要用户确认登录,这样可以通过用户的个人确认,获取用户全面的信息,无论是否关注相关微信公众号等都可以获取。
1、静默授权不需要用户确认,只需要用户访问某个网页,属于嵌套在普通网页里的授权形式,但是只能获取到用户的唯一标示openid和union id,无法拿到用户的微信头像、微信名称等个人信息,对于用户的简单认证还是很有用的。
2、静默授权的过程:
1)调用 wx.login() 获取 临时登录凭证code
2)调用 auth.code2Session 接口,换取用户唯一标识 openID
3)调用本地后台服务,将 openID 映射到本地的 userId
微信开发文档-小程序登录流程
参考文章:
1、 【微信小程序用户授权登录】
2、 微信第三方登录(静默授权和非静默授权)
3、 openid会变吗?微信小程序开发中的appid、openid、unionid使用总结

小程序微信登录
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和手机号+密码给后台
如果登录成功,返回登录成功参数,并且如果没有绑定微信,那么绑定微信
如果用户(手机号)存在,密码错误,提示密码错误
如果用户(手机号)不存在,那么注册该密码为登录密码
微信小程序的登录流程
传统的web开发实现登陆功能,一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录。
服务端校验用户信息通过之后,下发一个代表登录态的 token 给客户端,以便进行后续的交互,每当token过期,用户都需要重新登录。
而在微信小程序中,可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系,从而实现登陆功能。
实现小程序用户体系主要涉及到openid和code的概念:
1.调用wx.login()方法会生成code,将code作为参数传递给微信服务器指定接口,就可以获取用户的openid。
2.对于每个小程序,微信都会将用户的微信ID映射出一个小程序 openid,作为这个用户在这个小程序的唯一标识。
微信小程序登陆具体实现的逻辑如下图所示:
更加详细的功能图如下所示:
实际业务中,我们还需要登录态是否过期,通常的做法是在登录态(临时令牌)中保存有效期数据,该有效期数据应该在服务端校验登录态时和约定的时间(如服务端本地的系统时间或时间服务器上的标准时间)做对比。
这种方法需要将本地存储的登录态发送到小程序的服务端,服务端判断为无效登录态时再返回需重新执行登录过程的消息给小程。
另一种方式可以通过调用wx.checkSession检查微信登陆态是否过期:
1.如果过期,则发起完整的登录流程
2.如果不过期,则继续使用本地保存的自定义登录态
这种方式的好处是不需要小程序服务端来参与校验,而是在小程序端调用AP,流程如下所示:
小程序需要获取您的用户信息授权,请到小程序设置中打开授权
1、首先打开自己的个人微信。
2、在自己的微信上打开小年糕+小程序。
3、进入到小年糕+界面,选择点击我进入个人中心。
4、在小年糕+的个人中心,点击上方的授权按钮。
5、然后在申请授权页面点击允许。
6、接着回到小年糕+的个人页面,可以看到已经授权成功变成了你自己的头像。
微信小程序授权登录最佳实践
公司业务开展,最近完成了一个微信小程序的开发。场景是这样,同一微信开放平台下拥有相同主体的APP和微信小程序来完成同样的业务,用户进入app或者微信小程序时必须获取用户的unionid来确认当前的用户身份,完成登录。小程序“获取用户信息”api(getUserInfo)的调用方式和之前相比有了较大更新,优雅的实现用户授权和登录非常重要,以下是我在微信小程序授权登录相关流程在开发时候的实现思路和总结,分享如下。
说明:
你可以简单的理解为
如果开发者在多个移动应用、网站应用和公众帐号之间有统一用户账号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,便可利用UnionID机制来满足上述需求。
用户在开放平台的唯一标识符
你可以简单的理解为:
微信针对不同的用户在不同的应用下都有唯一的一个openId, 但是要想确定用户是不是同一个用户,就需要靠unionid来区分。一般自己的后台都会有自己的一个用户表,每个用户有不同的userid。也就是说同一个用户在同一个微信开放平台下的相同主体的应用对应着相同的userid,unionid以及不同的openid。所以在用户登录进来的时候,我们只能靠微信返回给我们的unionid去判断是不是同一个用户,在去关联我们的用户表,拿到对应的userid。
绑定了开发者帐号的小程序,可以通过下面3种途径获取UnionID。
当用户满足条件2和3时,开发者可以直接通过wx.login获取到该用户的unionid, 否则必须调用接口 wx.getUserInfo ,额外需要注意的事就是妥善处理用户拒绝授权的情况。
在真实的业务场景中,我们希望,用户进入小程序时,未登录情况下可以正常浏览商品,对小程序有个基本的认知,不要直接弹出框要求用户授权,否则会干扰用户,导致新用户的流失,当用户需要使用一些高级功能和场景,这个时候再去要求用户授权,这样用户授权的几率会大大提高。
将登录的逻辑封装ajax
流程:
封装的意义
不再关注当前接口是否需要登录,用户是否已授权,所有请求直接调用 ajax() ,在必要的时候完成一切登录以及授权流程。小程序入口页面增加,业务拓展的时候,你只需要专注于业务实现。
参考资料
微信小程序得到ck怎么登陆
1、首先需要一个按钮触发事件。
2、其次调用微信小程序的登录接口wx.login,拿到code。
3、然后调用微信小程序的获取用户信息的接口wx.getUserProfile,拿到用户的个人信息。
4、最后拿到的个人信息调用后台的接口,把个人信息传给后台,登录成功并把相关信息存储在本地的缓存中,方便之后的开发使用。
关于微信小程序获取用户信息登录和微信小程序获取用户登录态失败的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » 微信小程序获取用户信息登录(微信小程序获取用户登录态失败)