微信小程序登录 .net 后端实现

  • 1:前端获取用户凭证code 传送请求获得openId(用户唯一标识)    

在页面的Onlaunch 方法中,调用wx.login 方法

https://developers.weixin.qq.com/miniprogram/dev/api/wx.login.html

这一步获取登录凭证,通过凭证调用本地后台接口,获取用户openId sessionKey等,本地后台的接口调用方法参考第四步

注意点:

1:通常我们会把用户的session_key 存取到后台的session会话中,但是在微信小程序不会自动保存用户的session id, 这就需要将返回的session id 存在local storage中,当再次向后台请求时,在header 中带上 cookie , 看第二步图

2:that.globalData.info = res.data.data.string, 将一个object 里的string 赋值给globalData.info, 这个时候info的值仍然是indefined, 而 res.data.data是一个对象,会赋值成功,这是为什么呢?参考https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/06datatype.html

  • 2:前端获取用户信息并发送本地接口请求解码

 

注意点

1:当用户未授权登录时,此时不会弹框,需要跳出授权只能用<button open-type="getUserInfo"/>

2:向后台发送解码请求时,在header传 cookie, 标识是同一个会话,如图

  • 3:后端获取用户 session_key 和 open id(.net)

注意点

1:如果获取成功, errcode不会返回

2:  使用Asp.net core Session

安装包:Microsoft.AspNetCore.Session

在startup.cs 中进行配置,添加服务和注入session,网上有参考,不赘述

3: 使用vs 进行build时,以管理员模式运行

4: 微信要求服务器使用TLS1.2协议,如何在windows中升级TLS1.2

更改注册表,网上有资源不赘述

  • 4:后端进行加密信息解码

.net 加密解码回顾:

常见的加密算法包括md5,sha1,aes,base64, 而 AES是可逆的对称加密算法

Base64是一种编码方式,就是把一串二进制转换成另外一种二进制串

用于图片存储等,即把图片转换成一种二进制码,从而计算机能打印

AES:

https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.aesmanaged?redirectedfrom=MSDN&view=netframework-4.7.2

.net core session

TLS1.2

JsonConvert 反序列化时, 如果遇到特殊字符时,会报错的解决方法

参考资源

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html

原文地址:https://www.cnblogs.com/birdbird/p/10663754.html

时间: 2024-08-24 01:45:51

微信小程序登录 .net 后端实现的相关文章

微信小程序登录对接Django后端实现JWT方式验证登录

先上效果图 点击授权按钮后可以显示部分资料和头像,点击修改资料可以修改部分资料. 流程 1.使用微信小程序登录和获取用户信息Api接口 2.把Api获取的用户资料和code发送给django后端 3.通过微信接口把code换取成openid 4.后端将openid作为用户名和密码 5.后端通过JSON web token方式登录,把token和用户id传回小程序 6.小程序将token和用户id保存在storage中 下次请求需要验证用户身份的页面时,在header中加入token这个字段 微信

flask与微信小程序登录(后端)

开发微信小程序时,接入小程序的授权登录可以快速实现用户注册登录的步骤,是快速建立用户体系的重要一步.这篇文章将介绍 python + flask + 微信小程序实现用户快速注册登录方案(本文主要进行后端逻辑的梳理,小程序端逻辑只写了必要的部分,如有需要,请点击连接阅读官方开发文档) 官方给出的微信小程序登录时序图如下: 这个流程分为两大部分: 小程序使用 wx.login() API 获取 code,并由开发者后端服务器换取open_id 和 session_key,小程序使用 wx.getUs

SpringBoot整合微信小程序登录

1. 开发前准备 1.1 前置知识 java基础 SpringBoot简单基础知识 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lombok.mybatisplus.微信小程序 SpringBoot版本:2.1.4 1.3 涉及知识点 微信小程序登录流程 2. 微信小程序登录流程 微信小程序登录流程涉及到三个角色:小程序.开发者服务器.微信服务器 三者交互步骤如下: 第一步:小程序通过wx.login()获取code. 第二步:小程序通过

微信小程序登录那些事

最近团队在开发一款小程序,都是新手,一边看文档,一边开发.在开发中会遇到各种问题,今天把小程序登录这块的流程整理下,做个记录. 小程序的登录跟平时自己APP这种登录验证还不太一样,多了一个角色,那就是微信服务器. 根据微信官方提供的登录流程时序图可以清楚的了解小程序登录需要多少个步骤,下面我们来总结下: 小程序启动,通过wx.login()获取code 开发者服务器需要提供一个登录的接口,参数就是小程序获取的code 登录接口收到code后,调用微信提供的接口进行code的验证 得到验证结果,成

一号旺铺:国内第一个专注于微信小程序开发的后端云产品

启航 一号旺铺是天玑旗下继一号旺铺(wangpu1.com,媒体和小程序商店)后又一个基于微信生态的核心产品. 6 月 13 日,「一号旺铺」上线公测了. 「一号旺铺」www.wangpu1.com,是国内第一个专注于微信小程序开发的 BaaS(Backend as a Service)产品,它可以让开发者更快.更轻松地做出优美.稳定的小程序,且不失灵活性.爱范儿技术团队为此努力了 100 天,夜以继日,没有鸡腿. 爱范儿 CTO 在朋友圈写道:一号旺铺本是为了解决内部需求而设计的 BaaS 平

微信小程序--登录流程梳理

前言 微信小程序凡是需要记录用户信息都需要登录,但是也有几种不同的登录方式,但是在小程序部分的登录流程是一样的.之前就朦朦胧胧地用之前项目的逻辑改改直接用了,这个新项目要用就又结合官方文档重新梳理了下,并记录一下,好记性不如烂笔头嘛,哈哈. 几种登录流程设计 利用OpenId 创建新用户 这种方式我的理解大体上就是一种静默登录,获取用户信息之后解密用户信息并通过OpenId直接创建新用户 利用Unionid 创建新用户 这种方式的特点是可以利用Unionid实现多个小程序.公众号.已有登录体系的

[转]微信小程序登录数据解密以及状态维持

本文转自:http://www.cnblogs.com/cheesebar/p/6689326.html 学习过小程序的朋友应该知道,在小程序中是不支持cookie的,借助小程序中的缓存我们也可以存储一些信息,但是对于一些比较重要的信息,我们需要通过登录状态维持来保存,同时,为了安全起见,用户的敏感信息,也是需要加密在网络上传输的. 前台,service.封装了http请求,同时封装了getSession(通过code获取服务器生成的session).getUserInfo(获取用户信息).ge

在CentOS7阿里云服务器部署ThinkPHP5的过程和坑(微信小程序及管理员后端)

小程序和后端同步开发(后端tp5框架配置好直接开干咯) 1.服务器安装tp5框架: 方法很多比如:github.linux命令直接手动下.composer 都可以,方法很多,百度一下,不再累述 2.这时你会发现怎么都访问出现不了这个令人舒心的界面(ok第一个坑到啦) 这真的让我也急的冒汗,查了好多好多资料,废话不说直接上原因:因为linux服务器访问网页,默认情况下只能访问wwwroot目录下的网页. 3.OK找到原因就好办啦(吭哧吭哧开始填坑),直接把下载的文件剪切一下(具体命令怎么剪切,宝塔

微信小程序登录流程

微信登陆流程 微信多个载体(APP微信授权,微信公众号授权登陆),openId是不一致的,但是unionId是一致的 所以在走流程时, 先判断unionId在数据库中存在不存在 存在,拿unionId去数据库换token,获取用户信息,更新openId,---首页 不存在,在启动页,让用户点击授权登陆,获取用户信息,再进行手机号授权 微信授权手机号 ---首页 登陆注册手机号 ---首页 代码方面: 进入启动页 wx.login();//获取code,code只能获取一次 将code传给后端,换