全国服务热线:4008-888-888

技术知识

网页微信

网页微信:微信小程序三种授权登录的方式

----来着一只年幼的程序猿

经过一段时间对微信小程序的研发后 总结出以下三种授权登录的方式,我给他们命名为‘一次性授权’‘永久授权’‘不授权’

1.一次性授权
常规写法,需要获取用户公开信息(头像,昵称等)时,判断调取授权登录接口,但是此方法如果不经处理的话 用户如果拒绝授权或者删除该微信小程序后 需要重新调取并获取用户公开信息(头像,昵称等),此方法用户体验较差,不建议使用;

2.永久授权
在不必要使用用户公开信息(头像,昵称等)时,不调取授权登录接口,只有在必要的时候再去判断调取授权登录接口并把获取到的用户公开信息存入数据库,这样在每次登录时直接先运行指定函数从数据库索取需要的用户公开信息(头像,昵称等)即可,此方法在删除小程序后不用再次去授权登录(因为在用户第一次授权登录时已经把用户的公开信息存入数据库了以后直接向数据库索取即可),建议使用;

3.不授权
不需要授权登录获取用户公开信息(头像,昵称等),使用wx.login获取用户code并传入后台,后台可以通过用户的code值向微信要一个值(具体需要问后台,我只是个小前端,后台的东西不是很懂,只是知道一些逻辑而且也已经成功实现)然后通过这个用code换取的值就可以识别到指定用户,如果需要的话,前端要显示的头像、昵称等这些信息可以使用自定义可编辑的功能,当然,也可以通过 open-data type=“userAvatarUrl” /open-data open-data type=“userNickName” /open-data 小程序提供的这个组件显示用户的头像及昵称(不过这个组件只有显示功能),用户如果想直接使用自己的头像昵称,也可以自行授权(比如添加个引导按钮什么之类的),建议使用;

文中使用的微信自带接口、组件及函数:

open-data type=“userAvatarUrl” /open-data
open-data type=“userNickName” /open-data

wx.login({
success(res){
console.log(res.code)
}
})

微信授权登录

以上三种方式可以灵活运用,也可以把需要的结合到一起,并不冲突;

当然,大佬很多,我也只是个小前端而已,第一次发表技术方面的帖子,希望互相学习,互相指导,如有说的不对的地方还望大佬们及时指出!!! 谢谢

最后一次编辑于    

删除文章后,文章内容和评论将一并被删除,且不可恢复。

请选择投诉理由广告内容违法违规恶意灌水内容其他

13 个评论

Youngwell

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

楼主有空可以看看拼多多小程序的授权登录机制,是不是你文中说的第二种永久授权,只有第一次使用拼多多小程序登录时,会弹出授权框,之后进入小程序都会自动登录,用户名和头像都是微信的用户名和头像,即使把小程序删除,重新搜索小程序进入,仍然会自动登录

赞同 3回复 3Moonlight

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接对  应该是    他应该就属于这第二种,然后个人中心会有一个更新资料的按钮 其实也就是授权按钮 重新获取用户公开信息  从而更新数据库用户信息赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他晚风02-04

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接那拼多多的那个token是不是就是永久有效的,没有过期时间02-04赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他Make the fox rush07-16回复

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接肯定不会是永久有效,过期了前端刷新下就好了,重新调业务接口就行了07-16赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他请选择投诉理由广告内容违法违规恶意灌水内容其他九块腹肌的猛男

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

我们方案是通过用户授权后拿到头像昵称,以及通过code解析的出来unionId,且通过getPhoneNumber与手机号绑定,下次进来如果用户未登录,头像昵称授权即可拿到用户token信息等。

赞同 2回复 15Moonlight

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

其实在用户第一次授权的同时 把用户头像昵称还有获取到的手机号之类的信息直接存放到服务器就好了  下次用户进来的时候 直接传过去code  后台通过这个code去判断是否为新用户(即已授权过的用户)  如果是的话 直接把该用户信息返回即可   如果不是新用户(即已授权过的用户)那么再看看什么时候让用户授权   加个判断 就不用每次都授权了

赞 2回复请选择投诉理由广告内容违法违规恶意灌水内容其他Thinking80s回复

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

我们现在就使用这种方式

赞 1回复请选择投诉理由广告内容违法违规恶意灌水内容其他Moonlight回复

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

可以  很完美  哈哈哈

赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他九块腹肌的猛男回复

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

都是这样的啊。

赞 1回复请选择投诉理由广告内容违法违规恶意灌水内容其他Yisony

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

难道用户的头像 昵称不会变?

赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他请选择投诉理由广告内容违法违规恶意灌水内容其他空杯

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

那也就是说,如果前端只调用 wx.login 获取code ,然后把code给后台(之后就是后台的事了),这样前端没有任何授权弹窗,微信审核也是认可的。对吗?


赞同 1回复 2Moonlight

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接对  如果不需要实时获取用户公开信息的话 这样是可行的  也就是第三种方式赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他Moonlight

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接毕竟你没有给用户要权限 所以弹窗也就不存在了赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他请选择投诉理由广告内容违法违规恶意灌水内容其他小龙星期一 13:38

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

第二种方法,永久授权存入数据库中,用户卸载小程序重新登录时 如何知道是和数据库保存的用户是同一个人呢

星期一 13:38赞同 回复 请选择投诉理由广告内容违法违规恶意灌水内容其他暖光11-11

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

授权之后怎么取消授权

11-11赞同 回复 请选择投诉理由广告内容违法违规恶意灌水内容其他xy09-07

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接

用户头像 昵称实时获取 你要怎么处理


09-07赞同 回复 3Moonlight09-08

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接不存数据库的话09-08赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他Moonlight09-08

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接存数据库的话  只能手动触发授权按钮 再做之后操作09-08赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他xy09-08回复

加粗

标红

插入代码

插入链接

插入图片

上传视频

请 后发表内容 新增或编辑超链接链接地址插入视频视频链接ok09-08赞 回复请选择投诉理由广告内容违法违规恶意灌水内容其他请选择投诉理由广告内容违法违规恶意灌水内容其他Redredsecondone.


在线客服

关闭

客户服务热线
4008-888-888


点击这里给我发消息 在线客服

点击这里给我发消息 在线客服