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

博客说明

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

开通云调用功能

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

启动云调用

文档地址

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

安装云调用的sdk

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

npm install alipay-serverless-sdk --save

在全局里面引入sdk

import cloud from 'alipay-serverless-sdk';

初始化

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

获取code

my.getAuthCode({
scopes: 'auth_base',
success: (res) => {
this.setData({
authCode: res.authCode
});
},
});

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

代码示例

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

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

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

import cloud from "alipay-serverless-sdk";

Page({
data: {
result:[],
userId:'',
flag:false,
},
onLoad() {},
/**
* 授权成功事件
*/
onGetAuthorize() {
var that = this;
my.getOpenUserInfo({
fail: (res) => {
my.alert({
title: '授权失败'
});
},
success: (res) => {
this.setData({ result: JSON.parse(res.response).response});
//获取用户授权
my.getAuthCode({
scopes: 'auth_base',
success: async (res) => {
const tokenResult = await cloud.base.oauth.getToken(res.authCode);
var uid = tokenResult.userId;
this.setData({
userId: uid
});
console.log(that.data.userId);
//保存数据
my.serverless.function.invoke('login',{userId:that.data.userId, data:that.data.result}).then((res) => {
if (res.success && res.result) {
console.log(res);
my.setStorage({
key: 'user_id',
data: res.result.User.result.insertedId,
success() {
my.alert({
title: '登录成功'
});
},
fail(){
my.alert({
title: '登录失败'
});
}
});
}
}).catch(console.error);
},
});
console.log(that.data.result);
}
});
},
/**
* 授权失败事件
* @param {*} e
*/
onAuthError(e) {
this.setData({ result: e });
},
});

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

感谢

支付宝

以及勤劳的自己

支付宝小程序云开发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. CentOS 配置OOM监控报警

    由于程序设计不合理或者瞬间高并发访问时,很有可能会触发OOM(Out of memory),这里指的是操作系统级别的OOM.具体什么是OOM,以及怎样发生这里不在赘述,因为笔者认为这是IT从业工作者的 ...

  2. AJ学IOS(45)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。

    AJ分享,必须精品 简介 iOS中的很多小功能都是非常简单的,几行代码就搞定了,比如打电话.打开网址.发邮件.发短信.打开其他应用等. 打电话 方法1 最简单最直接的方式:直接跳到拨号界面 NSURL ...

  3. Threejs【坐标转换】如何让annotation跟随物体一起旋转

    现在根据鼠标点击的屏幕位置能够得到屏幕的坐标event.clientX和event.clientY,然后我的annotation就初始化在这个屏幕坐标的位置,那么如何绑定annotation和三维物体 ...

  4. D. AB-string

    https://codeforces.com/contest/1238/problem/D 题目大意:统计good string的个数,good string的定义,给定的字符串中含有回文段落, 题解 ...

  5. Gatling 条件判断

    在使用Gatling的过程中,当前置接口异常,无法获取到数据作为其他接口的请求参数室,接口是不能请求的.或者通过feeder获取的数据要区分不同的情况请求不同的接口.此时,使用gatling的判断语句 ...

  6. yzmsb_test.py

    识别诺诺金服页面的验证码,并自动登录到后台. #导包 from selenium import webdriver from PIL import Image, ImageDraw from time ...

  7. 爬虫需要登陆怎么办?这份python登陆代码请收下

    模拟登陆思路 通过selenium中的webdriver控制浏览器登录目标网站,然后获取模拟登陆需要的Cookie,再利用此Cookie来达到登录的效果.本次我们使用webdriver来驱动火狐浏览器 ...

  8. ADO.NET(二)

     对Command的拓展延伸 执行SQL语句. Command 对象需要取得将要执行的SQL语句,通过调用该类的多种方法,向数据库提交SQL语句. ExecuteNonQuery(),ExecuteR ...

  9. 开发者福利!百问I.MX6ULL裸机文档发布

    终于等到你,百问科技近600页的100ask_imx6ull裸机文档发布,已经合并到“嵌入式Linux应用开发完全手册第2版_韦东山全系列视频文档全集.pdf(1222页)”,所有人免费下载学习. 本 ...

  10. 这是那些大佬程序员常用的学习java网站,这就是别人薪资上万的原因

    大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们.主要有:电子书搜索.实用工具.在线视频 ...