uni-app关于小程序及app端第三方微信登陆问题
时间:2019-11-12
本文章向大家介绍uni-app关于小程序及app端第三方微信登陆问题,主要包括uni-app关于小程序及app端第三方微信登陆问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.第一次做第三方微信登陆,所以在这方面话太多时间了,主要是在获取code的时候感觉头痛,uni-app没有说明如何获取code,后来在网上搜索诸多信息后终于解决了问题
uni-app在app端第三方微信登陆时要获取code再传给后端,后端根据code向微信发送登陆请求:
// #ifdef APP-PLUS login() { var it=this; var getAppid = plus.runtime.appid; console.log('app端登陆') uni.login({ provider: 'weixin', success: function (loginRes) { console.log(JSON.stringify(loginRes.authResult)); uni.showModal({ content: JSON.stringify(loginRes.authResult), cancelText: "我再想想", cancelColor: "#999", confirmText: "转让", confirmColor: "#DEC17C", success: function(res) { } }) } }); var weixinService = null; // http://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.getServices plus.oauth.getServices(function(services) { console.log(312589340656548) console.log(services) if (services && services.length) { for (var i = 0, len = services.length; i < len; i++) { if (services[i].id === 'weixin') { weixinService = services[i]; console.log('授权对象') console.log(weixinService) break; } } if (!weixinService) { console.log('没有微信登录授权服务'); return; } // http://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.authorize weixinService.authorize(function(event) { //此处获取code的关键 console.log(event) console.log(event.code,'这次是真的授权后返回的code') it.weixinCode = event.code; //用户换取 access_token 的 code // it.requestLogin(); let data={code: it.weixinCode}; it.$api.user.login.getWeiXinCode(data).then(function(userInfo) { console.log('是否走到这里') console.log('第三方登录授权',it.weixinCode) console.log('第三方登录授权1111',userInfo) it.$store.commit('isLogged', true); it.$store.commit('user', {}); it.$store.commit('user', userInfo.data); uni.navigateBack() }).catch(res => { console.log(res) }); }, function(error) { console.error('authorize fail:' + JSON.stringify(error)); }, { // http://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthOptions appid: getAppid, //开放平台的应用标识。暂时填个假的充数,仅做演示。 }); } else { console.log('无可用的登录授权服务'); } }, function(error) { console.error('getServices fail:' + JSON.stringify(error)); }); }, // #endif
2. 微信小程序登陆方式 :
// #ifdef MP-WEIXIN getUserInfo(v) { let vm = this; uni.login({ provider: 'weixin', success: function(loginRes) { uni.getUserInfo({ success: function(res) { vm.$api.user.login.weChatAppletLogin(loginRes.code,res.encryptedData,res.iv) .then(function(userInfo) { vm.$store.commit('isLogged', true); vm.$store.commit('user', {}); vm.$store.commit('user', userInfo.data); uni.navigateBack() }).catch(res => { }); }, fail: function(res) { vm.$store.commit('isLogged', false); } }); }, fail: function(res) { } }); } // #endif
标签: uni-app日常总结
原文地址:https://www.cnblogs.com/shaozhu520/p/11841015.html
- Docker系列教程13-Docker可视化管理工具
- Ubuntu 16.04 安装VNC
- 使用Feign实现Form表单提交
- Ubuntu 16.04 Install OpenCV
- Spring Cloud各组件调优参数
- 手把手教你设置 IntelliJ IDEA 的彩色代码主题
- 实用技巧:Hystrix传播ThreadLocal对象(两种方案)
- OpenDaylight与Mininet应用实战之流表操作
- 使用Spring Cloud Feign上传文件
- 用 TensorFlow 让你的机器人唱首原创给你听
- Spring Cloud限流详解(附源码)
- 手动安装Docker 17.06
- 详述使用 IntelliJ IDEA 解决 jar 包冲突的问题
- Spring Cloud各组件重试总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Keepalived高可用服务解决方案
- pandas与SQL的查询语句对比
- 使用tensorflow搭建线性回归模型
- Flask-Admin修改成中文显示
- 什么是需求分析呢?
- 使用Pandas处理杂乱数据
- 在flask中使用flask-migrate管理数据库
- 直播视频网站源码,实现移动端的按钮拖动
- 解决k8s集群环境内存不足导致容器被kill问题
- NLP之pyhanlp安装及其使用
- nginx 代理 web socket 报错“WebSocket is already in CLO
- IDEA为每个文件加入姓名,日期,版本号
- nginx 代理 web socket 报错“WebSocket is already in CLO
- 用sklearn机器学习预测泰坦尼克号生存概率
- Kaggle共享单车数据分析——数据可视化