主题

CocosCreator接入微信登录获取openid,微信登录实现方案调研过程

特别说明

CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文档中有些知识点的补充和分析。

正文

在成语锦衣卫小游戏基础功能开发的差不多后,开始考虑怎么接入微信登录功能,或者说怎么对接微信的用户体系?

带着接入微信登录的问题,我先在CocosCreator的官方文档找了找解决方案

1. Cocos Creator第三方服务TCB云开发

还没看过CocosCreator接入TCB云开发服务的官方教程的同学,可以先看这里

有一个注意点,启用云服务后,会跳转到腾讯云登录界面,从cocos官网的邮件里可以看到登录账号,你登录成功后,大概率会看到类似下面的截图

可以先忽略这些提示,直接到CocosCreator编辑器里创建云开发环境,然后按照TCB云开发文档接入就可以了

在脚本中调用云开发的初始化:

  // 初始化方法,从配置中读取参数this.app = cc.cloud && cc.cloud.initialize();let auth = this.app.auth();auth.signInAnonymously().then(res => {// 需要先做授权才能正常调用。使用匿名登陆方式访问云开发资源// 请到腾讯云后台 -> 云开发 -> 选择当前环境 -> 环境设置/登录授权中,确认已经启用匿名登录// 匿名登录有一定限制,后期请更换为自定义登录等其他方式。console.log('TCB auth succeed');this.app.callFunction({// 云函数名称,要与上传的函数名一致name: "function",// 传给云函数的参数data: {a: 1}}).then(res => {console.log('function', res);}).catch(console.error);});

跟着文档学到这里,也没说怎么微信登录啊,继续看文档发现现在是匿名登陆的方式访问云开发资源,那是不是还有其他的登录方式呢,果然发现其他的登录方式,如下图:


我选择了“微信公众号”,然后跳转到云开发指南文档,在这里找到微信登录的代码,并发现了可以获取openid的方法


但是我在代码中调用Provider.signInWithRedirect(),并没有跳转微信OAuth授权页面,也没有内容callback回来。后来我在Cocos文档的TCB开发的教程最后发现了下面这句话:

原来CocosCreator使用的TCB云开发SDK是web版本,而Web版本只能通过使用wx.login()获取到code,然后再将code给到服务器,服务器去调用code2Session接口得到OpenID完成登陆,具体方案可以参考这里

这种方式和我预期的差太多,最后放弃了。

2. 微信开发者工具的云开发

既然CocosCreator的插件服务TCB云开发集成的是Web版本的SDK,那可不可以直接用微信开发者工具的云开发呢,这应当是最适合微信小游戏的云开发版本了,我们先看看微信云开发的介绍

云开发提供了几大基础能力支持:

  • 云函数:在腾讯云端运行的代码,与微信登录鉴权的无缝整合,在小程序端调用云函数时,传入的参数中会被注入小程序端用户的 openid,开发者可以直接使用该 openid。

  • 数据库:没有繁琐的后台数据库创建和管理问题,可以直接使用的数据库,它是一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库。

  • 存储:在小程序前端直接上传/下载云端文件,也可以在云开发控制台上传文件和可视化管理,文件支持外链访问。

  • 云调用:在云函数中能直接调用微信的开放能力api:比如获取用户基本信息和微信运动等敏感信息。

看到这里的第一感觉,微信开发工具提供的云开发能力节约了开发者大量接入微信登录的时间,如果能将CocosCreator项目和微信开发者工具的云开发能力结合起来使用,那就太省事了。

因为篇幅问题,我把微信开发者工具的云开发单独放在下一章讲,敬请期待!

结尾

既然您看到这了,说明文章对你还有用,帮忙点个赞再走吧,谢谢!

自己动手写,分解项目中的各个模块需求,通过查文档和搜索Cocos社区,解决碰到的问题,最终在微信上线了下面这款微信小游戏《成语锦衣卫》,欢迎大家扫码体验,并作为参考项目模版,开发出属于自己的小游戏

预告

下一节和朋友们说一说:Cocos Creator使用微信云开发和微信开放能力

微信小游戏开发之微信登录功能的云开发实现方案选择相关推荐

  1. 【愚公系列】2022年09月 微信小程序-微信小程序实现网页一键登录功能

    文章目录 前言 一.微信小程序实现网页一键登录功能 1.旧版登录方法 2.新版登录方法 二.相关第三方包源码 前言 如果微信小程序要获取微信登录的用户信息,需要拿到code去后台换取用户信息,具体步骤 ...

  2. 微信小程序仿网易云音乐(使用云开发,提供源码)

    微信小程序仿网易云音乐(使用云开发,提供源码)!!!!!!!!!!! 源码: 链接:https://pan.baidu.com/s/1z_ZnRVbT4vjEENimi8yBQQ 提取码:u0o3 一 ...

  3. HPH写好的答题小程序怎么放到微信小游戏里,微信开发者工具

    HPH写好的答题小程序怎么放到微信小游戏里,微信开发者工具 HPH写好的答题小程序怎么放到微信小游戏里,微信开发者工具 用wamp写的答题小程序,三个页面,一个数据库表,我想放到微信小游戏里,谁会弄帮 ...

  4. 微信小游戏转发、分享等功能实现

    本文将介绍开发微信小游戏四种常用功能的实现方法,这四种功能分别是: **获取头像功能 微信转发功能 微信分享功能 游戏圈** 在Egret Wing和微信开发者工具里的配置 为实现以上四个功能,我们需 ...

  5. 微信小游戏基础讲解 微信开发工具

    快速上手安装开发工具 前往 开发者工具下载页面 ,根据自己的操作系统下载对应的安装包进行安装. 你的第一个小游戏 新建项目选择小程序项目,选择代码存放的硬盘路径. 目前小游戏不提供公开注册,可点击体验 ...

  6. 微信小游戏html5教程,微信小游戏白鹭引擎插件使用教程

    为了更好的提升微信小游戏的打开速度,提高用户体验,微信正式发布了引擎插件功能,白鹭引擎第一时间支持并正式发布支持该功能的5.2.31版本.以下是白鹭引擎插件使用的详细说明文档及常见问题解答,请诸位开发 ...

  7. 微信小游戏多账号快速登录插件

    开发背景: 随着微信小程序用户越来越多,生态越来越繁荣,越来越多的企业开发者参与到小程序/小游戏的开发工作中,不断的推出新的产品,这也导致很多产品经理.运营人员.开发人非常频繁的登录微信公众平台,进行 ...

  8. cocos creator微信小游戏,使用微信云开发实现“世界排行榜”

    微信提供的子域只能实现好友排行,我们一般希望实现所有玩家的世界排行榜. 那么问题来了,我们怎么获取所有玩家的openid?其实很简单,就是玩家打开游戏或排行榜时,请求玩家授权,这样就拿到openid了 ...

  9. 在微信小程序中制作的登录功能一定要考虑不同的入口问题

    在微信小程序登录中,不应该只考虑到,一般入口文件,而且还有扫码,分享等等情况的,都要考虑进去.

最新文章

  1. 面向过程和面向对象编程的优缺点
  2. [转] 最近点对距离问题
  3. 哪个app最费电_关于石墨烯养生地暖,业主最关心的几大问题,答案附上!
  4. 什么意思是谁_舔狗是什么意思?如果不是真的喜欢谁又愿意做舔狗呢出处?
  5. 正则表达式判断ip格式
  6. Vue.js 作者尤雨溪:TypeScript 与 JavaScript 并行才切合实际!
  7. [转载] python3.6版本生成的python脚本如何打包为可独立执行的exe程序
  8. 100 个网络基础知识 看完成半个网络高手
  9. 天工直通车app_天工直通车成套安卓版下载
  10. android 排队系统设计,基于android银行排队叫号系统毕业设计论文+设计源码+答辩PPT...
  11. ToStringBuilder.reflectionToString
  12. python flask智能租房项目——详情页
  13. 人工智能兼职讲师内训讲师叶梓对sony技术部进行CV计算机视觉培训
  14. 新兴的计算机设备,澳洲新兴专业-计算机数控,你会心动吗?
  15. 万恶之源的hello world
  16. 线上宠物销售系统的设计与实现
  17. JVM之运行时数据区(方法区)
  18. 【软件过程管理】课程知识点梳理及习题
  19. Android最牛的开源收集
  20. APIDOC- API文档生成工具——node

热门文章

  1. 克隆人与死亡 (转)
  2. 掌握计算机维护搭配动词,我会搭配词语。(脱)衣服(完成)作业()篮球()动物()电脑()房间()麦...
  3. linux 配置开机自启动命令
  4. onreadystatechange
  5. 程序员们,今天你被晒支付宝年度账单了吗?
  6. matlab 作图所用特殊符号及希腊字母总结
  7. Maya: 菜单 曲面 双轨成形双轨成形1工具
  8. matlab贝叶斯判别后验概率,统计学习方法——朴素贝叶斯法、先验概率、后验概率(示例代码)...
  9. 黑马程序员-银行调度系统
  10. 讲一讲移动端跨平台技术的演进之路