当前位置: 首页 > news >正文

asp.net core 网页接入微信扫码登录

创建微信开放平台账号,然后创建网页应用
在这里插入图片描述
获取appid和appsecret
在这里插入图片描述
在这里插入图片描述

前端使用的vue,安装插件vue-wxlogin
在这里插入图片描述
调用代码

<wxlogin :appid="appId" :scope="scope" :redirect_uri="redirect_uri"></wxlogin>
<script>
import wxlogin from "vue-wxlogin";const appId = ref("wx开头的appid");
const scope = ref("snsapi_login");
const redirect_uri = ref("跳转的URL,需要URL编码");//比如原来是http://www.baidu.com需要填写http%3A%2F%2Fwww.baidu.com,使用encodeURIComponent即可实现
</script>

这样就能出来二维码了,微信扫码之后有一个codehttps://www.xxxx.com/?code=011UQe100NJMTR1tsG100BNvo93UQe1n&state=
前端需要返回code给后台,后台解析
安装Nuget包https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat
在这里插入图片描述
在这里插入图片描述
实现解密code,需要读取appid和appsecret,这两个参数都放到appsettings.json中

 "OpenWeixin": {"OpenWechatAppId": "","OpenWechatAppSecret": ""}

OpenWeixinOptions

services.AddConfigurableOptions<OpenWeixinOptions>();public class OpenWeixinOptions : IConfigurableOptions
{/// <summary>/// 微信开放平台appid/// </summary>public string OpenWechatAppId { get; set; }/// <summary>/// 微信开放平台appsecret/// </summary>public string OpenWechatAppSecret { get; set; }
}

编写帮助类OpenWechatHelper

using Furion;
using Furion.DependencyInjection;
using SKIT.FlurlHttpClient.Wechat.Api;
using SKIT.FlurlHttpClient.Wechat.Api.Models;/// <summary>
/// 微信开放平台帮助类
/// </summary>
public class OpenWechatHelper : ISingleton
{private WechatApiClient client;/// <summary>/// 构造函数注入/// </summary>public OpenWechatHelper(){var wechatConfig = App.GetOptions<OpenWeixinOptions>();var options = new WechatApiClientOptions(){AppId = wechatConfig.OpenWechatAppId,AppSecret = wechatConfig.OpenWechatAppSecret,};client = new WechatApiClient(options);}/// <summary>/// 根据code获取某个应用下的微信用户id/// </summary>/// <param name="code"></param>/// <returns></returns>public async Task<string> GetOpenId(string code){var request = new SnsOAuth2AccessTokenRequest();request.Code = code;var tokenResponse = await client.ExecuteSnsOAuth2AccessTokenAsync(request);if (!tokenResponse.IsSuccessful()){return string.Empty;}return tokenResponse.OpenId;}
}

剩下的按照业务逻辑处理即可

相关文章:

asp.net core 网页接入微信扫码登录

创建微信开放平台账号&#xff0c;然后创建网页应用 获取appid和appsecret 前端使用的vue&#xff0c;安装插件vue-wxlogin 调用代码 <wxlogin :appid"appId" :scope"scope" :redirect_uri"redirect_uri"></wxlogin> <scri…...

【板栗糖GIS】如何给微软拼音输入法加上小鹤双拼

【板栗糖GIS】如何给微软拼音输入法加上小鹤双拼 用过在注册表里新建的方法&#xff0c;结果弄完没有出现小鹤双拼方案&#xff0c;想到了自己写reg表 目录 1. 新建一个txt文件 2. 把.txt的后缀名改成.reg&#xff0c;双击运行 3. 在设置中找到微软输入法-常规 1. 新建一个…...

如何解决微信小程序无法使用css3过度属性transition

由于微信小程序不支持CSS3过度属性transition,所以我们需要利用微信小程序api进行画面过度的展示 首先是官方示例: wxml: <view animation="{{animationData}}" style="background:red;height:100rpx;width:100rpx"></view> js: Page(…...

【软件设计师知识点】九、网络与信息安全基础知识

文章目录 计算机网络的概念网络分类网络拓扑结构网络体系结构ISO/OSI 7层参考模型TCP/IP 4层模型TCP/IP 协议族应用层协议传输层协议网络层协议IP 地址IPV4 数据报IP 地址分类子网划分子网掩码IPv6地址...

广东省道路货物运输资格证照片回执可手机线上办理

广东省道路运输资格证是从事道路运输业务、危险品道路运输人员的必要证件&#xff0c;而在办理该证件的过程中&#xff0c;驾驶员照片回执是一项必不可少的材料。随着科技的发展和移动互联网的普及&#xff0c;现在办理驾驶员照片回执已经不再需要亲自前往照相馆&#xff0c;而…...

【微信小程序——案例——本地生活(列表页面)】

案例——本地生活&#xff08;列表页面&#xff09; 九宫格中实现导航跳转——以汽车服务为案例&#xff08;之后可以全部实现页面跳转——现在先实现一个&#xff09; 在app.json中添加新页面 修改之前的九宫格view改为navitage 效果图&#xff1a; 动态设置标题内容—…...

【设计模式】SOLID设计原则

1、什么是SOLID设计原则 SOLID 是面向对象设计中的五个基本设计原则的首字母缩写&#xff0c;它们是&#xff1a; 单一职责原则&#xff08;Single Responsibility Principle&#xff0c;SRP&#xff09;&#xff1a; 类应该只有一个单一的职责&#xff0c;即一个类应该有且只…...

基于java+springboot+vue实现的智能停车计费系统(文末源码+Lw+ppt)23-30

摘 要 随着人们生活水平的高速发展&#xff0c;智能停车计费信息管理方面在近年来呈直线上升&#xff0c;人们也了解到智能停车计费的实用性&#xff0c;因此智能停车计费的管理也逐年递增&#xff0c;智能停车计费信息的增加加大了在管理上的工作难度。为了能更好的维护智能…...

IntelliJ IDEA 2022.3.2 解决decompiled.class file bytecode version:52.0(java 8)

1 背景 使用idea 打开一个Kotlin语言编写的demo项目&#xff0c;该项目使用gradle构建。其gradle文件如下&#xff1a; plugins {id javaid org.jetbrains.kotlin.jvm version 1.8.20 } group me.administrator version 1.0-SNAPSHOTrepositories {mavenCentral()jcenter()…...

C++11 设计模式1. 模板方法(Template Method)模式学习。UML图

一 什么是 "模板方法&#xff08;Template Method&#xff09;模式" 在固定步骤确定的情况下&#xff0c;通过多态机制在多个子类中对每个步骤的细节进行差异化实现&#xff0c;这就是模板方法模式能够达到的效果。 模板方法模式属于&#xff1a;行为型模式。 二 &…...

HarmonyOS实战开发-自定义分享

介绍 自定义分享主要是发送方将文本&#xff0c;链接&#xff0c;图片三种类型分享给三方应用,同时能够在三方应用中展示。本示例使用数据请求 实现网络资源的获取&#xff0c;使用屏幕截屏 实现屏幕的截取&#xff0c;使用文件管理 实现对文件&#xff0c;文件目录的管理&…...

Spring源码刨析之配置文件的解析和bean的创建以及生命周期

public void test1(){XmlBeanFactory xmlBeanFactory new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));user u xmlBeanFactory.getBean("user",org.xhpcd.user.class);// System.out.println(u.getStu());}先介绍一个类XmlBeanFac…...

如何使用 Grafana 监控文件系统状态

当 JuiceFS 文件系统部署完成并投入生产环境&#xff0c;接下来就需要着手解决一个非常重要的问题 —— 如何实时监控它的运行状态&#xff1f;毕竟&#xff0c;它可能正在为关键的业务应用或容器工作负载提供持久化存储支持&#xff0c;任何小小的故障或性能下降都可能造成不利…...

智能革命:未来人工智能创业的天地

智能革命&#xff1a;未来人工智能创业的天地 一、引言 在这个数字化迅速变革的时代&#xff0c;人工智能(AI)已经从一个边缘科学发展成为推动未来经济和社会发展的关键动力。这一技术领域的飞速进步&#xff0c;不仅影响着科技行业的每一个角落&#xff0c;更是为创业者提供了…...

4月14日总结

java学习 一.多线程 简介&#xff1a;多线程是计算机科学中的一个重要概念&#xff0c;它允许程序同时执行多个任务或操作。在单个程序内部&#xff0c;多线程使得代码可以并行执行&#xff0c;从而提高程序的性能和响应速度。 这里先来介绍一下创建多线程的几种方法。 1.扩展…...

kafka---broker相关配置

一、Broker 相关配置 1、一般配置 broker.id 当前kafka服务的sid(server id)&#xff0c;在kafka集群中&#xff0c;该值是唯一的&#xff08;unique&#xff09;&#xff0c;如果未设置此值&#xff0c;kafka会自动生成一个int值&#xff1b;为了防止自动生成的值与用户设置…...

【Golang学习笔记】从零开始搭建一个Web框架(二)

文章目录 模块化路由前缀树路由 前情提示&#xff1a; 【Golang学习笔记】从零开始搭建一个Web框架&#xff08;一&#xff09;-CSDN博客 模块化路由 路由在kilon.go文件中导致路由和引擎交织在一起&#xff0c;如果要实现路由功能的拓展增强&#xff0c;那将会非常麻烦&…...

高精度地图导航论文汇总

文章目录 2021基于车载激光点云的高精地图矢量化成图[J] 2022基于高精度地图的智能车辆路径规划与跟踪控制研究[M] 2023一种无人驾驶融合决策方案的设计与实现[M] 2021 基于车载激光点云的高精地图矢量化成图[J] 摘要&#xff1a; 针对车载激光点云中对各特征物提取结果后矢量…...

【域适应】基于域分离网络的MNIST数据10分类典型方法实现

关于 大规模数据收集和注释的成本通常使得将机器学习算法应用于新任务或数据集变得异常昂贵。规避这一成本的一种方法是在合成数据上训练模型&#xff0c;其中自动提供注释。尽管它们很有吸引力&#xff0c;但此类模型通常无法从合成图像推广到真实图像&#xff0c;因此需要域…...

从零实现诗词GPT大模型:pytorch框架介绍

专栏规划: https://qibin.blog.csdn.net/article/details/137728228 因为咱们本系列文章主要基于深度学习框架pytorch进行,所以在正式开始之前,现对pytorch框架进行一个简单的介绍,主要面对深度学习或者pytorch还不熟悉的朋友。 一、安装pytorch 这一步很简单,主要通过p…...

百川2-13B模型安全测试:OpenClaw在防御恶意指令方面的表现

百川2-13B模型安全测试&#xff1a;OpenClaw在防御恶意指令方面的表现 1. 为什么需要测试AI助手的安全性 去年我在本地部署了一个自动化助手&#xff0c;本想让它帮我整理文档和收发邮件。结果有次不小心让它执行了一个包含rm -rf的命令&#xff0c;差点把工作目录清空。这次…...

如何用League-Toolkit提升你的英雄联盟游戏体验

如何用League-Toolkit提升你的英雄联盟游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾经在英雄联盟游戏中感到效…...

FreeRTOS实战指南:从消息队列到内存管理,手把手解决嵌入式多任务难题

FreeRTOS实战指南&#xff1a;从消息队列到内存管理&#xff0c;手把手解决嵌入式多任务难题 1. 为什么嵌入式开发者需要FreeRTOS 在资源受限的嵌入式系统中&#xff0c;开发者常常面临这样的困境&#xff1a;既要处理实时性要求高的传感器数据采集&#xff0c;又要兼顾用户界面…...

拯救大模型“幻觉”?Python RAG九大架构全解析

别让你的AI助手&#xff0c;从“得力员工”变成“职场骗子” 你是否也曾被大模型的“一本正经胡说八道”气到无语&#xff1f; 你精心部署的客服机器人&#xff0c;自信地告诉客户&#xff1a;“我们的退货政策是90天&#xff01;”——而实际上&#xff0c;公司的规定是30天…...

OCLP-Mod:终极指南 - 让老旧Mac免费升级到最新macOS

OCLP-Mod&#xff1a;终极指南 - 让老旧Mac免费升级到最新macOS 【免费下载链接】OCLP-Mod A mod version for OCLP,with more interesting features. 项目地址: https://gitcode.com/gh_mirrors/oc/OCLP-Mod 你是否拥有一台被苹果官方"抛弃"的老旧Mac&#x…...

Python多线程真能并行了吗?(GIL绕过技术全图谱:subprocess/numba/multiprocessing/cython/rustpy)

第一章&#xff1a;Python无锁GIL环境下的并发模型面试题汇总Python 的全局解释器锁&#xff08;GIL&#xff09;长期被视为多线程并发的瓶颈&#xff0c;但近年来随着 CPython 3.13 引入实验性无锁 GIL&#xff08;--without-pymalloc 配合 --with-per-object-gil 原型&#x…...

从智慧灯杆到无人驾驶:如何用Raspberry Pi 4和Arduino搭建微型智慧城市实验平台

从智慧灯杆到无人驾驶&#xff1a;如何用Raspberry Pi 4和Arduino搭建微型智慧城市实验平台 在创客文化和高校工程教育中&#xff0c;低成本硬件的创新应用正掀起一场微型智慧城市实验的革命。只需一块树莓派主板、几个传感器和开源软件&#xff0c;就能在桌面上复现价值数百万…...

资源监控告警:OpenClaw+Qwen3-32B镜像守护个人服务器

资源监控告警&#xff1a;OpenClawQwen3-32B镜像守护个人服务器 1. 为什么需要智能化的个人服务器监控&#xff1f; 去年我的个人服务器连续宕机三次——第一次因为内存泄漏导致OOM崩溃&#xff0c;第二次被挖矿程序占用全部CPU资源&#xff0c;第三次则是磁盘写满后无人察觉…...

3步构建智能无人机防御系统:从威胁识别到实时追踪的实践指南

3步构建智能无人机防御系统&#xff1a;从威胁识别到实时追踪的实践指南 【免费下载链接】Anti-UAV &#x1f525;&#x1f525;Official Repository for Anti-UAV&#x1f525;&#x1f525; 项目地址: https://gitcode.com/gh_mirrors/an/Anti-UAV 一、安全威胁&#…...

Phi-4-Reasoning-Vision效果展示:低资源语言(如日/韩/西)图文推理能力

Phi-4-Reasoning-Vision效果展示&#xff1a;低资源语言&#xff08;如日/韩/西&#xff09;图文推理能力 1. 多模态推理工具概览 Phi-4-Reasoning-Vision是一款基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具。该工具专为双卡RTX 4090环境优化&#x…...