支付宝小程序云开发serverless----获取用户的user_id

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

开通云调用功能

在阿里云平台的serverless的扩展能力里面开通云调用功能,如果没有开通的话,后面调用函数会出错。

启动云调用

文档地址

https://opendocs.alipay.com/mini/cloudservice/bhl5vx

安装云调用的sdk

在小程序项目的根目录执行以下命令安装SDK,是在client里面

  1. npm install alipay-serverless-sdk --save

在全局里面引入sdk

  1. import cloud from 'alipay-serverless-sdk';

初始化

  1. // 2.3 初始化 alipay-serverless-sdk
  2. cloud.init(my.serverless);

获取code

  1. my.getAuthCode({
  2. scopes: 'auth_base',
  3. success: (res) => {
  4. this.setData({
  5. authCode: res.authCode
  6. });
  7. },
  8. });

调用云函数的获取用户user_id,base.oauth.getToken

代码示例

  1. const tokenResult = await cloud.base.oauth.getToken(res.authCode);

在这个地方注意使用async和await或者使用than链,不然获取不到

我把我实现的代码全部贴出来

  1. import cloud from "alipay-serverless-sdk";
  2. Page({
  3. data: {
  4. result:[],
  5. userId:'',
  6. flag:false,
  7. },
  8. onLoad() {},
  9. /**
  10. * 授权成功事件
  11. */
  12. onGetAuthorize() {
  13. var that = this;
  14. my.getOpenUserInfo({
  15. fail: (res) => {
  16. my.alert({
  17. title: '授权失败'
  18. });
  19. },
  20. success: (res) => {
  21. this.setData({ result: JSON.parse(res.response).response});
  22. //获取用户授权
  23. my.getAuthCode({
  24. scopes: 'auth_base',
  25. success: async (res) => {
  26. const tokenResult = await cloud.base.oauth.getToken(res.authCode);
  27. var uid = tokenResult.userId;
  28. this.setData({
  29. userId: uid
  30. });
  31. console.log(that.data.userId);
  32. //保存数据
  33. my.serverless.function.invoke('login',{userId:that.data.userId, data:that.data.result}).then((res) => {
  34. if (res.success && res.result) {
  35. console.log(res);
  36. my.setStorage({
  37. key: 'user_id',
  38. data: res.result.User.result.insertedId,
  39. success() {
  40. my.alert({
  41. title: '登录成功'
  42. });
  43. },
  44. fail(){
  45. my.alert({
  46. title: '登录失败'
  47. });
  48. }
  49. });
  50. }
  51. }).catch(console.error);
  52. },
  53. });
  54. console.log(that.data.result);
  55. }
  56. });
  57. },
  58. /**
  59. * 授权失败事件
  60. * @param {*} e
  61. */
  62. onAuthError(e) {
  63. this.setData({ result: e });
  64. },
  65. });

注意存储缓存,还有验证用户数据是否已经保存。

感谢

支付宝

以及勤劳的自己

支付宝小程序云开发serverless----获取用户的user_id的更多相关文章

  1. 微信小程序云开发-数据库-获取用户添加的数据到数据库

    一.列表页面新增[添加商品]按钮 在列表页增加[添加商品]按钮,按钮绑定事件toAdd(),用户点击该按钮跳转到添加商品页面. 在js文件中写toAdd()函数,作用是点击[添加商品]按钮,跳转到[添 ...

  2. 支付宝小程序云开发(Serverless)

    支付宝小程序云开发(Serverless) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 一.在支付宝账号里面开通小程序云服务 ...

  3. 微信小程序云开发获取文件夹下所有文件

    上周一个高中同学让我帮他做个图片展示的公众号,因为一直在加班的原因,所以一时忘了,昨晚想起来就赶紧加班加点的帮他弄了下,遇到了个问题,记录一下. 他的需求是要有个后台给他上传图片并且将图片归类,前端公 ...

  4. 用小程序·云开发两天搭建mini论坛丨实战

    笔者最近涉猎了小程序相关的知识,于是利用周末时间开发了一款类似于同事的小程序,深度体验了小程序云开发模式提供的云函数.数据库.存储三大能力.关于云开发,可参考文档:小程序·云开发. 个人感觉云开发带来 ...

  5. 微信小程序云开发-从0打造云音乐全栈小程序

    第1章 首门小程序“云开发”课程,你值得学习本章主要介绍什么是小程序云开发以及学习云开发的重要性,并介绍项目的整体架构,真机演示项目功能,详细介绍整体课程安排.课程适用人群以及需要掌握的前置知识.通过 ...

  6. 前端微信小程序云开发基础讲解

    什么是云开发 云开发与传统模式的对比 云开发能力介绍云开发对小程序开发的变革 云开发是微信团队联合腾讯云提供的原生serverless云服务,致力于帮助更多的开发者快速实现小程序业务的开发,快速迭代. ...

  7. 技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)

    2019年2月26日,人们为了一个杯子疯了一天. 星巴克猫爪杯,一场已经与猫无关了的“圣杯战争“.网上的倒卖价格,已炒至近千元! 求而不得,舍而不能,得而不惜.这是人最大的悲哀... 所以,请珍惜以下 ...

  8. 第六章 “我要点爆”微信小程序云开发实例之爆文详情页制作

    爆文详情页制作 从首页中数据列表打开相应详情页面的方法: 给数据列表中每个数据项加一个点击事件,同时将当前数据项的id暂时记录在本地,然后跳转到详情页面detail goopen: function ...

  9. 第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现

    第一章 “我要点爆”微信小程序云开发之项目建立与我的页面功能实现 开发环境搭建 使用自己的AppID新建小程序项目,后端服务选择小程序·云开发,点击新建,完成项目新建. 新建成功后跳转到开发者工具界面 ...

随机推荐

  1. HBase协处理器加载的三种方式

    本文主要给大家罗列了HBase协处理器加载的三种方式:Shell加载(动态).Api加载(动态).配置文件加载(静态).其中静态加载方式需要重启HBase. 我们假设我们已经有一个现成的需要加载的协处 ...

  2. AJ学IOS 之微博项目实战(9)微博模型之时间相关重要操作,判断刚刚,昨天,今年等等

    AJ分享,必须精品 一:效果 二:实现代码 /** 1.今年 1> 今天 * 1分内: 刚刚 * 1分~59分内:xx分钟前 * 大于60分钟:xx小时前 2> 昨天 * 昨天 xx:xx ...

  3. cwyth(自动核销代码)

    财务一体化系统,自动核销大数据代码: import pymysql import random import time #指定数据库地址.用户.密码.端口,使用connect()方法声明一个Mysql ...

  4. vue2.x学习笔记(十)

    接着前面的内容:https://www.cnblogs.com/yanggb/p/12584237.html. 事件处理 使用javascript当然少不了事件处理,即使是vue也不会例外. 监听事件 ...

  5. Linux 常用到的命令

    1.按照文件所有属用户和名字查询 find -user mpsp -name \*.bin 2.根据string 字符串查找内容 more +/string test.txt 3.查找文件尾部 后20 ...

  6. [Python进阶].pyc的那点事

    1. 什么是 .pyc文件 .pyc文件 就是 Python的字节码(byte-compiled)文件..py文件运行时,python会自动将其编译成PyCodeObject并写入.pyc文件,再有p ...

  7. Scrapy爬虫框架(2)--内置py文件

    Scrapy概念图 这里有很多py文件,分别与Scrapy的各个模块对应 superspider是一个爬虫项目 spider1.py则是一个创建好的爬虫文件,爬取资源返回url和数据 items.py ...

  8. 2019-2020-1 20199310《Linux内核原理与分析》第六周作业

    1.问题描述 在前面的文章中,学习了系统调用的相关理论知识,并使用库函数API和C代码中嵌入汇编代码两种方式使用getpid()系统调用.本文将内容围绕系统调用system_call的处理过程,在Me ...

  9. python学习07列表

    '''列表''''''列表:是可变的序列,也是一种可以存储各种数据类型的集合 用[]中括号表示列表的开始和结束:元素之间用,逗号隔开 '''l1=[] #空列表print(len(l1))l2=[&q ...

  10. java学习(第二篇)语法学习

    1.java标识符 类名.变量名以及方法名都被称为标识符. 关于 Java 标识符,有以下几点需要注意: 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($).或者下划线(_)开始 首字符之 ...