产品类型:目前只有微信小程序。

目标:授权登录,建立用户体系。

框架:uniapp+云开发+云函数。

方案一:通过官方提供的 univerify 插件

官方文档:uni一键登录 - uni-app官网 (dcloud.io)

univerify 是DCloud 推出的一键登录产品,通过与运营商深度合作,实现APP用户无需输入帐号密码,即可使用本机手机号码自动登录的能力。

univerify是替代短信验证登录的下一代登录验证方式,能消除现有短信验证模式等待时间长、操作繁琐和容易泄露的痛点。

问题描述:看起来很爽,估计用起来也很爽,但是收费,一次2分钱没必要,还是用微信openid吧

方案二:通过微信小程序 openid 标识

1、uniapp下建立云函数 login,代码如下

'use strict';
exports.main = async (event, context) => {//event为客户端上传的参数console.log('event : ', event)const appid = 'appid';const secret = 'secret';const apiUrl = 'https://api.weixin.qq.com/sns/jscode2session?appid='+appid+'&secret='+secret+'&js_code='+event.code+'&grant_type=authorization_code';const res = await uniCloud.httpclient.request(apiUrl, {method: 'GET',data: {},contentType: 'json', // 指定以application/json发送data内的数据dataType: 'json' // 指定返回值为json格式,自动进行parse})//返回数据给客户端return res
};

在云函数中发起请求,使用的是 uniCloud.httpclient 发起请求 - uni-app官网 (dcloud.io)

注意上面的 contentType和dataType参数不要删掉,否则不能正常返回,数据会有问题。

做的时候想着GET请求参数也拼到了URL里,就删掉了,导致返回结果异常。加上则正常。

 

2、在客户端调用云函数 login ,代码如下

// 获取code
uni.login({provider: 'weixin',success: async loginRes=>{console.log(222,loginRes);// 通过code获取openId 标识用户uniCloud.callFunction({name: 'login',data: {code: loginRes.code}}).then(res=>{console.log(res.result)})// 获取用户信息uni.getUserInfo({provider: 'weixin',success: async infoRes=>{this.hasLogin = true;console.log(111,infoRes.userInfo)this.userInfo = infoRes.userInfo;},})}
});

说一下和微信云函数获取 openid 的区别吧

微信由于云开发开通后,本身就已经和APPID及密钥关联起来了,所以只需要引入wx-server-sdk直接获取openid等相关参数。

操作步骤如下:先在云函数目录下执行 cnpm install --save wx-server-sdk@latest 安装云函数服务相关SDK,然后创建云函数。

// 云函数入口文件
const cloud = require('wx-server-sdk')// 云函数环境配置
cloud.init({env: cloud.DYNAMIC_CURRENT_ENV
})// 云函数入口函数
exports.main = async (event, context) => {console.log(event,context)const wxContext = await cloud.getWXContext()return {event,openid: wxContext.OPENID,appid: wxContext.APPID,unionid: wxContext.UNIONID,env: wxContext.ENV,}
}

uniapp云开发云函数获取微信openid相关推荐

  1. 微信小程序-使用云函数获取微信的openid

    1.新建云函数login_get_openid 云开发环境初始化参见:https://blog.csdn.net/yuxiao1121/article/details/125222407 新建云函数参 ...

  2. 小程序 | 云函数获取用户openid

    云函数获取用户openid 云函数获取用户openid openid是用户唯一标识符,如果获取用户openid可以在程序功能实现上省去很多事情. 具体操作 微信开发者工具中WXML.JS.WXSS与网 ...

  3. 解决微信小程序云开发模式无法获取数据库数据问题

    解决微信小程序云开发模式无法获取数据库数据问题 问题: 在数据库有两条数据,获取数据时输出窗口没有任何反应 错误原因: 检查数据库名字是否对应 检查你是否有多个云开发环境 如果有多个云开发环境,就需要 ...

  4. 云开发连接mysql_微信小程序云开发—云函数连接MySQL

    微信小程序云开发-云函数连接MySQL 直接上干货,主要是利用微信的云函数和Sequelize 进行连接外部MySQL ,本文章主要讲述: MySQL MySQL 拉取我的代码或则创建一个新的云开发小 ...

  5. springboot 做表白墙_基于微信云开发 SayLove 表白墙微信小程序V1.0

    基于微信云开发 SayLove 表白墙微信小程序 后续会继续更新,敬请期待2.0全新版本~ 欢迎添加左边的微信一起探讨! 注意: 云函数的wx-server-sdk依赖需要更新才能正常使用,这里的都是 ...

  6. 小程序云开发(一)微信登录实现

    传统微信登录流程 云开发下微信登录流程 云开发登录实现 1)miniprogram文件夹下app.js设置env和traceUser:true,跟踪用户信息 wx.cloud.init({env: ' ...

  7. 微信开发小程序云开发云存储中文件下载地址实时读取文件内容实时下载地址解读

    微信开发小程序云开发云存储中文件下载地址解读 最近公司要我开发一款具备电子签名功能的微信小程序,虽然我是Android开发程序员,但...老总要求了那我就去做呗,好在微信小程序还算入门容易,网上有很多 ...

  8. python操作微信小程序云端数据库_微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序...

    微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序 浏览量:1120 时间:2020-04-06

  9. 云开发校园微社区微信小程序源码/二手交易/兼职交友微信小程序开源功能介绍

    简介: 云开发校园微社区微信小程序开源源码,这是一款云开发校园微社区-二手交易_兼职_交友_项目微信小程序开源源码,可以给你提供快捷方便的校园生活,有很多有趣实用的板块和功能,如:闲置交易.表白交友. ...

最新文章

  1. Nginx源码分析:启动流程
  2. 浅谈CSRF攻击方式
  3. 防sql注入Replace区分大小写
  4. 狗年过节不收礼,短信打劫才时尚[ZT]
  5. android自定义水波纹,android 自定义view-水波纹进度球
  6. Faste R-CNN的安装及测试
  7. 表likp新增第一次过账输入日期字段,vl02n/vl01n/vl03n/vl06o的增强
  8. C# 值类型和引用类型
  9. marathon 测试
  10. python获取国内IP地址合集下发至网络设备
  11. 卡巴斯基提示:“手机骷髅”病毒引发新一轮安全隐患
  12. spark算子--action篇
  13. 2020CCPC长春站第一场区域赛打铁记
  14. 将计算机设置成交换机主机名,分享:如何配置学校机房项目交换机?
  15. 常用工具 [ubuntu 图像编辑软件]
  16. 连接查询--嵌套查询
  17. [激光原理与应用-65]:激光器-器件 - 多模光纤(宽频光纤)、单模光纤的原理与区别
  18. Codeforces847M Weather Tomorrow
  19. AAAI 2022 | 量化交易相关论文(附论文链接)
  20. 南开大学python编程基础_[南开大学]20春学期《Python编程基础》在线作业(答案100分)...

热门文章

  1. 自知力:团队管理必须讲的秘密
  2. ershoumall分布式事务(初体验)
  3. LeetCode-995. K连续位的最小翻转次数(Minimum Number of K Consecutive Bit Flips)
  4. 双目相机标定OpenCV源码讲解
  5. 计算机新手教程装系统,新手小白必看电脑重装系统教程 四种方法至少会一种就够用!...
  6. 鬼哥解析第二地球SET亮点优势
  7. Redis案例实战_微信抢红包
  8. 数据技术专家能力模型
  9. 根据字典数据计算互信息
  10. Android nck c++调用java方法