微信小程序登录,包括uniapp的微信小程序登录

代码:

样式:

<button @click="login">登入</button>

事件(methods中):

login() {//判断缓存中是否有用户数据(也就是判断有没有登录)if (!uni.getStorageSync('encryptedData')) {uni.getUserProfile({desc: '获取您的昵称、头像、地区及性別',//向用户展示的信息//用户点击了登录success: infoRes => {console.log(infoRes)if (infoRes.errMsg === 'getUserProfile:ok') {//开始登录const appid = uni.getAccountInfoSync().miniProgram.appIduni.login({provider: 'weixin',success: function (loginRes) {const code = loginRes.codeuni.request({url:'https://api.weixin.qq.com/sns/jscode2session',method:'GET',data:{appid:appid,secret:'a*********f',//微信公众平台小程序获取js_code:code,grant_type:'authorization_code'},success:res => {console.log(res)//根据你的需要存用户信息,可以存到cookie也可以写个请求存到你服务器的数据库里面uni.setStorageSync('encryptedData', infoRes.encryptedData);uni.setStorageSync('iv', infoRes.iv);uni.setStorageSync('rawData', infoRes.rawData);uni.setStorageSync('signature', infoRes.signature);uni.setStorageSync('securityStatus', 1);uni.showToast({title: '登陆成功',duration:2000});},fail:err => {uni.showToast({title: '网络错误登陆失败',icon: 'none',duration:2000});}})}});	} else {uni.showToast({title: '授权失败',icon: 'none',duration:2000});}},fail: err => {uni.showToast({title: '授权失败',icon: 'none',duration:2000});}});} else {console.log('登陆过了')}},

详细解释:

1、首先是uni.getUserProfile,这个只是获取当前用户的登录信息,而且包含这个API的事件必须定义为click事件,不能定义在钩子函数也就是生命周期函数中。否则会报错{errMsg: "getUserProfile:fail can only be invoked by user TAP gesture."}

而且异步也会报同样的错误,可以理解为尽量别在uni.getUserProfile外面套别的请求或者uni.的方法。

2、uni.getUserProfile,这个只是获取当前用户的登录信息。目的也只是获取用户信息,可以用来存到数据库,所以用户即使不登陆也可以存下来用户信息(最好不要这样)。然后就是uni.login,目的是获取微信登陆用的code(等同于微信小程序官方的wx.login,uniapp只是改了个名字)。这一步的目的是获取code,只有有了code才能使用微信登陆的官方接口。(一般获取到用户信息其实可以自己实现存用户信息登录了,但是小程序上传代码可能会不给你过。所以按照官方流程来)

3、调用https://api.weixin.qq.com/sns/jscode2session接口,来使用微信官方的登录流程。此接口的接口文档:auth.code2Session | 微信开放文档 (qq.com)

方法为get方法,参数appid和secret可以去微信公众平台 (qq.com)登录后的开发管理的开发设置中找到,如图:

 js_code就是第二步中获得的code,最后一个参数grant_type直接写为:grant_type:'authorization_code'就可以了。

最后根据这张图:

 我们就已经完成到了返回自定义登陆状态。微信的官方文档告诉我们下一步应该这样做:

 4、可以把第三步请求中获得的openid也就是用户唯一标识来判断用户有没有登录和传给后端的token(我上边的代码为了方便验证是否登录用了其他参数)

此时用户数据已经获取并告诉微信官方小程序被用户登陆了。然后怎么存用户信息就要根据业务来写代码了。

注:uniapp上述代码可以直接复制,然后换上自己的secret就行了。

        如果你用的是微信小程序原生开发:

        (1)uni.getUserProfile换成wx.getUserProfile来获取用户信息。

        (2)uni.getStorageSync和uni.setStorageSync就不能用了,换成微信小程序的cookie存储方式。

        (3)uni.login换成wx.login来获取code。

        (4)uni.request换成微信小程序的调用网络接口模式。

        (5)uni.showToast换成微信小程序的弹窗插件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38482.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

桔子拓客是什么?

桔子拓客软件是一款安装在手机上APP智能营销软件&#xff0c;启动软件后可不停的活跃帐号&#xff0c;推送作品给指定的人群&#xff0c;指定区域&#xff0c;以此来达到精准曝光&#xff0c;定向引流&#xff0c;帮助用户实现流量的暴增&#xff01; 桔子拓客软件采用非入侵式…

做一个和瑞幸咖啡一样的小程序,就能3月赚24亿了吗?

2017年我开了一家咖啡店&#xff0c;疫情之前门店生意还比较惬意和滋润&#xff0c;没想到这疫情突如其来&#xff0c;一度要关门大吉。 后来偶然间看到瑞幸咖啡的年度报表&#xff0c;还有5月24日&#xff0c;瑞幸咖啡公布了2022年第一季度业绩&#xff0c;总净收入为24.046亿…

揭秘爆款的小程序,为何一黑到底

文章目录 前言⛳️ 1.什么是小程序?⛳️ 2.小程序发展史⛳️ 3.小程序原理⛳️ 4.如何开发微信小程序⛳️ 5.小程序的学习资源⛳️ 6.第一个微信小程序 前言 小程序&#xff0c;由于其便捷的操作&#xff0c;以及丰富的功能&#xff0c;已经普及到了生活中的各个领域,有很多人…

开始第一个基于uni-app的微信小程序开发

微信小程序 uni-app开发工具创建uni-app项目运行项目页面显示以及调试 uni-app uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、H5、以及各种小程序&#xff08;微信/支付宝/百度/头条/QQ/钉钉/淘宝&#…

微信小程序开发大坑盘点

微信小程序开发大坑盘点 起因 前几天心血来潮&#xff0c;想给学校设计个一站式校园小程序&#xff0c;可以查询成绩&#xff0c;考试信息&#xff0c;课表之类的&#xff08;本来想法里是还想包括一些社交功能的&#xff0c;但这个因为资质问题暂且搁置了&#xff09;。其实…

那些年我们在微信小程序遇到的坑

前言 本篇主要记录一下我在开发中遇到的小程序的坑&#xff0c;还有实现的功能。 避坑 坑一&#xff1a;开发工具配置 &#xff08;1&#xff09;控制台如果报proxy代理相关错误&#xff0c;先检查左上角菜单栏中设置>代理设置>使用系统代理 &#xff08;2&#xff09…

使用uniapp微信公众号和小程序踩坑全过程

什么是微信公众号&#xff1f;它的本质是什么 什么是微信公众号 微信公众平台&#xff0c;简称公众号。曾命名为“官号平台”、“媒体平台”、微信公众号&#xff0c;最终定位为“公众平台”。 微信公众号包含了&#xff1a;订阅号&#xff0c;服务号和企业号&#xff0c;各…

多端开发框架uni-app入坑指南,一套代码适用微信、头条等小程序

前言 hello 小伙伴们&#xff0c;现在我已经正式入坑 uni-app 了。uni-app 已经发布好几个月了&#xff0c;期间也是踩坑无数&#xff0c;但是官方秉承着不抛弃不放弃的精神&#xff0c;积极解决开发者的各种简单的、复杂的问题&#xff0c;在此表示感谢。我想还有小伙伴正在持…

基于uniapp开发 微信小程序登陆页面一

此微信登陆页面是参考uniapp开发文档 uniapp一键登录和button组件中的getphonenumber方法 代码展示 <template><view class"login-container"><buttonclass"btn-login"open-type"getPhoneNumber"getphonenumber"handleLog…

uniapp之微信小程序开发——目前遇到的坑

文章目录 微信小程序开发教程目录写在开头所谓的坑1. main.js你最好别瞎改2. uniapp中创建云函数3. 云函数安装其他npm依赖包4. 小程序端API和服务端API有何异同5. 去除button默认样式6. 组件中使用v-if不能用7. websocket使用 总结 微信小程序开发教程目录 正篇 1 【约球onli…

Uniapp小程序登录和登录验证

小程序的登录验证流程图&#xff1a; 第一步&#xff1a;获取微信用户的基本信息&#xff1a; 调用getUserProfile方法&#xff0c;获取用户基本信息 methods:{getUserProfile(){desc:"完善用户信息"&#xff0c;success:(res)>{this.saveUserInfo(res.userInfo) …

采用uni-app开发的多端圈子社区论坛系统

采用uni-app开发的多端圈子社区论坛系统 系统基于TP6 Uni-app框架开发&#xff1b;客户移动端采用uni-app开发&#xff0c;管理后台TH6开发。 系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步&#xff0c;可快速打包生成APP。 拥有完善的后台管理&#xff0c;不…

uniapp之uni-starter小程序多端研发框架搭建与项目实践

随着移动互联网的飞速发展&#xff0c;无数移动APP琳琅满目&#xff1b;在移动App的发展的基础上&#xff0c;衍生了小程序、轻应用技术&#xff0c;它随时可用&#xff0c;但又无需安装卸载。 小程序是一种不需要下载安装即可使用的应用&#xff0c;它实现了应用“触手可及”…

【记录】基于uni-app开发的微信小程序商城项目

一、项目基本结构 &#xff08;一&#xff09;tabbar页面 首页 分类 购物车 我的(用户中心) &#xff08;二&#xff09;非tabbar页面 搜索 商品列表 商品详情 微信支付 结构解析&#xff1a; 1. 构建一个小程序&#xff0c…

【uni-app项目】瑞幸咖啡小程序

技术栈 框架:uni-appui库:uview-ui编辑器:HBuilderXapi文档 api目前只有商品信息,之前完整版api文档不知道被我丢哪里去了,需要的话请订阅后私聊邮箱 功能描述 使用uni-app框架,仿照瑞幸小程序前端,与后端api对接(使用网上的接口),动态处理数据 功能如下 (注意!…

不同平台使用不同技术实现微信好友、朋友圈分享汇总(H5、taro、uni-app)

人生路漫漫&#xff0c;坑&#xff0c;是活久了见。程序猿世界里各种奇葩的需求都有&#xff0c;随之而来的各种坑也是层出不穷。 应前IBM同事邀请特来做分享的专题总结。一般人我不告诉他&#xff0c;刷到的朋友们就赚到了&#xff0c;你懂的~~~~~~收藏吧&#xff01; 事情前…

关于我在uni-app练手中遇到的坑

目录 页面层级结构的加载和回退 filePath编码 对象的深度克隆 弹幕的加载 ​编辑 uni-app内置浏览器加载视频失败 后台报错 java.io.IOException: 你的主机中的软件中止了一个已建立的连接 安卓里遍历uni-list-item错误 手机自带浏览器无法加载视频 乱码问题 video中…

【哈士奇赠书活动 - 17期】-〖uni-app跨平台开发与应用从入门到实践〗

文章目录 ❤️‍&#x1f525; 赠书活动 - 《uni-app跨平台开发与应用从入门到实践》❤️‍&#x1f525; 编辑推荐❤️‍&#x1f525; 抽奖方式与截止时间❤️‍&#x1f525; 赠书活动 → 获奖名单 ❤️‍&#x1f525; 赠书活动 - 《uni-app跨平台开发与应用从入门到实践》…

1个月uni-app微信小程序开发上线实战专栏介绍

一、专栏介绍&#xff1a; 《uni-app开发微信小程序1个月上线实战》&#xff0c;目标带领1000位同学成功开发上线一个自己的个人小程序&#xff01; 作者介绍&#xff1a;国服第二切图仔——资深前端开发工程师&#xff0c;具有六年以上的前端开发经验&#xff0c;曾在多家知…

深入浅析,一步步用GPT打造你的聊天机器人

使用GPT基于你自己的文档构建聊天机器人的分步指南。 微信搜索关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 与ChatGPT聊天很有趣&#xff0c;而且信息量很大 —— 与它闲聊可以探索一些新的想法。但这些都是比较随意的用例&#xff0c;新奇感很快…