cocos + KBEngine 微信小游戏 - 微信登陆

2024-01-21 08:48

本文主要是介绍cocos + KBEngine 微信小游戏 - 微信登陆,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        由于微信小游戏没有提供服务端获取微信用户详细信息的接口,所以小游戏的微信登陆,用户信息要依赖客户端获取并上报到服务端,服务端为了数据正确性,需要对客户端上报的信息进行合法性校验。整个流程为:

 1.授权(wx.authorize):客户端首先获得查询用户信息的权限。

 2.拿到用户信息(wx.getUserInfo):客户端通过微信服务获得用户信息(userInfo),我们这里用到的用户信息包括:用户详细信息userInfo['userInfo'],不包括敏感信息的原始数据字符串userInfo['rawData'],使用 sha1( rawData + sessionkey ) 得到字符串userInfo['signature']。

 3.微信登陆(wx.login):客户端向微信服务获得登陆凭证(code)。

3.游戏登陆:客户端拿用户信息(userInfo)和登陆凭证(code)向服务端发起登陆

4.服务端登陆(auth.code2Session):服务端首先通过登陆凭证(code)向微信服务获的用户的唯一标识(openid)及本次登录的会话密钥(session_key)。

5.服务端校验:对 userInfo['rawData']  + session_key 使用sha1算法得到加密后的key,对比key与userInfo['signature']是否相同判定数据正确性

6.服务端使用客户端上传的用户详细信息创建游戏角色

微信小程序开发文档  https://developers.weixin.qq.com/minigame/dev/guide/

 

7.补充:

我的玩家信息(userInfo)是用登陆中的clientData参数传输的,而由于玩家信息(userInfo )中存在中文导致玩家信息校验失败,原因是js插件中writeBlob 对中文的支持不完善,导致与服务器通讯过程中,中文信息传输错误。,所以对插件做如下修改

1.修改调用位置
// bundle.writeBlob(KBEngine.app.clientdatas);
bundle.writeClientData(KBEngine.app.clientdatas);2.KBEngine.Bundle 增加writeClientData函数this.writeClientData = function(v){var s = KBEngine.stringToUTF8Bytes(v);this.checkStream(s.length + 4);this.stream.writeBlob(s);}

 

这篇关于cocos + KBEngine 微信小游戏 - 微信登陆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/628978

相关文章

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac