手把手教会你小程序登录鉴权
这里官方文档中的流程图已经足够清晰了,所以我们直接进行阐述和补充。
首先,当你看这张图时,你一定会注意到,小程序不仅与小程序前端和我们自己的服务器进行通信和交互,还与微信第三方服务器进行通信和交互。那么微信服务器在其中扮演什么角色呢?我们一起过一遍登录认证流程就明白了。
1. 调用wx.login生成codewx.login() API的功能是为当前用户生成临时登录凭证。该临时登录凭证的有效期只有五分钟。获得此登录凭据后,我们可以继续下一步:获取openid和session_key
2. 获取openid和session_key那么session_key是用来做什么的呢?有了用户ID,我们就需要让用户登录。那么session_key就保证了当前用户会话操作的有效性。这个session_key是微信服务器分发给我们的。也就是说,我们可以通过这个标识符来间接维护我们小程序用户的登录状态。那么我们如何得到这个session_key呢?我们需要在自己的服务器上请求微信提供的第三方接口https://api.weixin.qq.com/sns/jscode2session。该接口需要带四个参数字段:
appid小程序的参数值为小程序的appidsecret Secretjs_code。 wx.login 调度的codegrant_type\'authorization_code\' 在前面调用。
从这些参数可以看出,请求该接口首先必须调用wx.login()获取用户当前会话的code。那么为什么我们需要在服务器端请求这个接口呢?其实也是出于安全考虑。如果我们在前端通过request 的方式调用这个接口,就不可避免的需要将我们的小程序的appid 和Secret 暴露给外部。同时,我们还将微信服务器发出的session_key暴露给“有心人”,这会给我们的业务安全带来很大的风险。除了在服务器端获取session_key外,我们还需要注意两点:
session_key与微信分发的代码一一对应。相同的code只能兑换一次session_key。每次调用wx.login()时,都会发出一个新的密码和相应的session_key。为了保证用户体验以及登录状态的有效性,开发者在调用wx.login()之前需要知道用户需要重新登录。
session_key 是时间敏感的。即使不调用wx.login,session_key也会过期。过期时间与用户使用小程序的频率正相关,但具体时间长短开发者和用户均无法得知。
3. 生成3rd_session前面提到,session_key是用来“间接”维护登录状态的。所谓间接就是说我们需要自己维护用户的登录态信息,这里也考虑到了安全因素。如果直接使用微信服务器分发的session_key作为业务方的登录状态,就会被“有心人”利用来获取用户的敏感信息。例如wx.getUserInfo()接口需要session_key来配合微信用户敏感信息的解密。
所以如果我们生成自己的登录状态ID,我们可以使用几种常见的不可逆哈希算法,如md5、sha1等,将生成的登录状态ID(这里我们统称为“key”)返回给前端,并在前端维护登录状态ID(通常存储在存储中)。在服务器端,我们将生成的skey存储在用户对应的数据表中,前端通过传递skey来访问用户的信息。
可以看到这里我们使用sha1算法来生成skey:
4. checkSession之前我们将密钥存储在前端存储中。每次我们发出用户数据请求时,我们都会带上密钥。那么如果此时session_key过期了怎么办?所以我们需要调用wx.checkSession()接口来验证当前session_key是否已经过期。该接口不需要传入session_key的任何信息参数。而是微信小程序调整了自己的服务来查询用户最近生成的session_key是否已经过期。如果当前session_key过期,则让用户重新登录,更新session_key,并将最新的skey存储到用户数据表中。
至于checkSession这一步,我们通常将其放在小程序启动时验证登录状态的逻辑中。以下是验证登录状态的流程图:
以下代码是验证登录状态的简单过程:

5. 支持emoji表情存储如果需要将用户的微信名存储在数据表中,那么请确认数据表和数据列的编码格式。由于用户的微信名称可能包含表情符号图标,而常用的UTF8编码仅支持1-3个字节,因此表情符号图标正好以4个字节的编码存储。
这里有两种方式(以mysql为例):
1.设置存储字符集
mysql5.5.3版本之后,支持将数据库、数据表、数据列的字符集设置为utf8mb4,所以默认的字符集编码和服务器端编码格式可以在/etc/my.cnf中设置
设置完默认字符集编码和服务器端字符集编码后,如果要对已有的表和字段进行转换,需要执行以下步骤:
设置数据库字符集为utf8mb4
设置数据表字符集为utf8mb4
设置数据列字段字符集为utf8mb4
这里的COLLATE指的是排序字符集,用于对存储的字符进行排序和比较。 utf8mb4 有两种常用的排序规则:utf8mb4_unicode_ci 和utf8mb4_general_ci。一般推荐使用utf8mb4_unicode_ci,因为它是基于标准Unicode排序算法(UCA)排序的,可以在各种语言中准确排序。这两种排序方式的具体区别可以参考:utf8_general_ci 和utf8_unicode_ci 有什么区别
使用sequelize将emoji字符编码到数据库中,然后在使用时对其进行解码。
这是sequelize的配置。请参阅Sequelize 文档。
之前讲过微信小程序如何访问微信登录状态标识的详细流程。那么小程序中如何获取用户数据,解密用户的敏感数据,保证用户数据的完整性。我会在下一篇文章中给大家详细介绍。
微信这2个地方不设置,陌生人就能随意登录你微信和看到你隐私
我们首先打开微信的设置,在微信设置页面中,就可以看到有一个【授权管理】的开关,在这个授权管理页面中就可以看到我们手机上面授权的应用,无论是我们自己授权的还是一些软件自动授权的,在这里我们都能看到,我们的微信信息之所以会泄露出去,其实就是由于这个授权开关引起的,因为这些授权过的应用会自动获取我们的微信信息,其中包括个人信息,好友信息以及其他信息,它们都快快速获取到,因此我们要把这些授权过的应用全部解除,解除完之后才能保障我们的信息不会被泄露!我们点击这个授权的应用,然后直接点击下面的【取消授权】。如果您在该授权管理中有很多应用程序,那么您必须将它们全部删除。只有去掉我们的微信才更安全!
那么除了关闭这个授权管理开关之外,我们在微信中还有一个地方也需要尽快删除,不然的话会造成我们的账号被盗的情况,为什么这样说呢?因为一旦没有删除这个开关的话,别人就可以通过别的手机登录我们的微信,而且根本不要密码就可以直接登录成功,非常危险,所以我们要尽快把这个地方删除!我们在【微信设置】中还找到了【微信登录设备】的设置。这里我们可以看到我们的微信是在哪些【设备】上登录的。如果我们在这里发现任何不是我们自己的手机或者我们的旧手机设备,我们必须将它们全部删除。删除后我们的微信账号就不会被泄露和被盗了!

微信怎么授权登录抖音
注:由于最新政策更新,微信/QQ限制了抖音直接注册授权。这意味着新用户无法使用微信/QQ账号直接注册抖音账号。不过,如果您之前使用过微信/QQ授权登录过抖音,则可以继续通过这种方式登录。对于新用户,您需要使用手机号码或其他方式注册抖音账号。
微信授权登录抖音步骤如下:2、在弹出的页面中点击“设置”;
3、点击设置页面的“账户与安全”;
4、在账户与安全页面点击“第三方账户绑定”;
5、绑定第三方账号,点击微信后面的箭头;
6、在弹出的页面中选择您需要登录的微信账号;
7. 按照新页面的提示进行授权并登录。
1、数据隐私:使用第三方授权登录时,请仔细阅读并理解授权内容,避免无意中泄露过多个人信息。
2、多种注册方式:考虑使用手机号码或电子邮箱地址进行注册,以维护账户的独立性和安全性。
3、定期检查授权:定期检查和管理您的授权状态,撤销不再使用的第三方应用权限。
4、加强安全意识:即使您使用第三方授权登录,您也应该定期更新您的密码和账户安全设置,防止您的账户被未经授权的访问。
虽然微信/QQ与抖音之间的直接注册授权受到限制,但已经拥有抖音账号的用户仍然可以使用之前的授权继续登录。对于新用户来说,使用手机号码或其他方式注册已成为新标准。这些变化提醒我们,在享受数字便利的同时,也要注意保护个人数据的安全。
标题:微信如何授权登录-微信如何授权登录抖音权限设置在哪里
链接:https://yqqlyw.com/news/rj/63186.html
版权:文章转载自网络,如有侵权,请联系删除!
用户评论
我之前一直用微博登录抖音,感觉特别不方便,最近才知道可以微信授权登录!终于不用再切换账号了,很方便啊!
有18位网友表示赞同!
文章写的比较详细,图文并茂,看了一定都懂了。原来微信授权登录抖音这么简单哈!之前一直在网上找资料,浪费时间呢!还是过来这看看靠谱!学习一下!
有7位网友表示赞同!
我觉得这种授权机制其实挺好的,安全性也比较高吧,不用频繁输入密码也不容易被盗号。
有10位网友表示赞同!
我就是想问下大家,如果微信和抖音解绑了,会不会以后就无法再登录呢?我有点担心啊!
有16位网友表示赞同!
这篇文章讲的点很多,但感觉不够全面,比如没有提到一些特殊情况的处理方式,比如说账号被封或者授权失败的时候怎么办?
有14位网友表示赞同!
"微信如何授权登录抖音权限设置在哪里",这个问题我想问一下,我设置了授权,但是仍然无法使用微信登录,请问是什么原因呢?
有9位网友表示赞同!
我觉得这种授权机制其实很方便,但同时也要注意数据的安全,希望平台能够更重视用户的隐私保护。
有10位网友表示赞同!
我已经试了多次了,还是没有成功授权微信登录抖音怎么办?是不是要重新下载软件或者卸载重装呢?
有7位网友表示赞同!
我感觉这个授权登录有些麻烦啊,不如直接用手机号登录就好了!而且我的手机号和微信账号绑定过很多其他平台,这样授权会显得有点不太安全吧?
有6位网友表示赞同!
之前一直没注意到抖音有微信授权登录功能,试了一下,真的超级方便!感谢分享这篇文章,让我终于找到了这个省事的办法!
有13位网友表示赞同!
看了文章,感觉还挺好懂的,但是还是有一些细节不清楚,比如如果不小心泄露了微信信息该怎么办呢?有没有什么安全措施可以保障我的数据安全?
有12位网友表示赞同!
抖音和各个平台的登录方式越来越复杂了,有时候我真的找不到路啊!明明就是简单的小功能,结果弄得这么绕。希望以后能更人性化一些吧!
有10位网友表示赞同!
我听说微信授权登录抖音可能会同步很多我的个人信息,比如好友圈、收藏等,这样会不会侵犯我的隐私呢?有人知道吗?
有16位网友表示赞同!
我感觉这种授权登录方式有点像是在将自己的账号和数据捆绑在一起了,万一以后想解绑又麻烦啊!希望平台能提供更灵活的操作方案。
有7位网友表示赞同!
抖音的权限设置确实挺复杂的,总觉得需要花很多时间来了解所有选项。有时候干脆就默认选择吧,也不知道做了哪些影响我的隐私的数据分享...
有12位网友表示赞同!
我觉得文章还是比较有帮助的,特别是对于那些没有使用过微信授权登录的抖音用户来说非常实用!希望未来平台可以提供更多便捷和安全的登录方式。
有12位网友表示赞同!
我倒是觉得这种授权登录方式挺好玩的,我的微信号码和抖音账号都绑定了所有朋友,这样一来就可以方便地查看大家的动态了!
有13位网友表示赞同!
感觉有些文章里的信息可能已经过时了,因为现在微信授权登录抖音的功能好像也发生了部分变化呢!建议大家尽量去官方网站上查询一下最新的资料。
有10位网友表示赞同!