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;}
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/610554.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贪心算法|56.合并区间

力扣题目链接 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> result;if (intervals.size() 0) return result; // 区间集合为空直接返回// 排序的参数使用了lambda表达…

解决vue启动项目报错:npm ERR! Missing script: “serve“【详细清晰版】

目录 问题描述问题分析和解决情况一解决方法情况二&#xff08;常见于vue3&#xff09;解决方法情况三解决方法 问题描述 在启动vue项目时通常在控制台输入npm run serve 但是此时出现如下报错&#xff1a; npm ERR! Missing script: "serve" npm ERR! npm ERR! T…

qt-C++笔记之获取当前文件名所在路径并拼接出新文件路径的一种方法

qt-C笔记之获取当前文件名所在路径并拼接出新文件路径的一种方法 code review! 运行 在 Qt 框架中&#xff0c;QFileInfo 和 QDir类通常用于文件系统信息的查询和目录管理。下面是按照这样一种新颖的步骤来拼接新文件路径的示例代码&#xff1a; #include <QFileInfo>…

微商商城源码小程序好用么?

商城APP作为电子商务行业的重要组成部分&#xff0c;已经成为了人们购物的主要方式之一。为了在竞争激烈的市场中脱颖而出&#xff0c;开发一款专业且思考深度的商城APP方案显得尤为关键。本文将从专业性和思考深度两个方面&#xff0c;探讨商城APP的开发方案。 一、专业性的重…

Qt Creator 12.0.2 debug 无法查看变量的值 Expression too Complex

鼠标放在局部变量上提示“expression too complex”。 在调试窗口也看不到局部变量的值。 这应该是qt的一个bug&#xff0c;https://bugreports.qt.io/browse/QTCREATORBUG-24180 暂时解决方法&#xff1a; 如下图&#xff0c;需要右键项目然后执行"Clean"和&quo…

Blazor OIDC 单点登录授权实例7 - Blazor hybird app 端授权

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor OIDC 单点登录授权实例2-登录信息组件wasmBlazor OIDC 单点登录授权实例3-服务端管理组件Blazor OIDC 单点登录授权实例4 …

Kyligence 发布企业级 AI 解决方案,Data + AI 落地迈向新阶段

4月11日&#xff0c;Kyligence 2024 数智论坛暨春季发布会成功召开。Kyligence 正式发布全新的企业级 AI 解决方案&#xff0c;基于服务金融、零售、制造、医药等行业领先客户的落地实践&#xff0c;Kyligence 为企业提供准确、可靠、智能的 AI 指标平台一站式解决方案&#x…

VQ-BeT: Behavior Generation with Latent Actions 代码复现(Mujoco 安装)

代码地址&#xff1a;https://github.com/jayLEE0301/vq_bet_official.git 创建环境 conda create -n vq-bet python3.9 conda activate vq-bet拉取库 git clone https://github.com/jayLEE0301/vq_bet_official.git export PROJ_ROOT$(pwd)安装pytorch conda install pyto…

win11 连接海康摄像头 ONVif协议

目录 Win 11 通过脚本打开自带的IE浏览器访问海康摄像头 海康摄像头设置支持onvif协议 安装onvif协议 onvif协议示例代码 Win 11 通过脚本打开自带的IE浏览器访问海康摄像头 第一步、桌面右键新建一个 txt 的文档 第二步、打开文档并且复制粘贴下面代码 CreateObject(&…

数仓指标体系

数仓指标体系 明确统计指标 明确统计指标具体的工作是&#xff0c;深入分析需求&#xff0c;构建指标体系。构建指标体系的主要意义就是指标定义标准化。所有指标的定义&#xff0c;都必须遵循同一套标准&#xff0c;这样能有效的避免指标定义存在歧义&#xff0c;指标定义重复…

SSH远程登陆系统(RedHat9)

ssh的基本用法 ssh hostname/IP # 如果没有指定用什么用户进行连接&#xff0c;默认使用当前用户登录 ssh –l username hostname/IP ssh usernamehostname ssh usernameIP在第一次连接到服务器时&#xff0c;会自动记录服务器的公钥指纹信息 如果出现密钥变更导致错误可以…

LeetCode 最长重复子串的更换问题

LeetCode 最长重复子串的更换问题 在处理字符串问题时&#xff0c;我们经常会遇到一些具有挑战性的问题&#xff0c;比如今天的这个问题&#xff1a;给定一个字符串 s 和一个整数 k&#xff0c;我们的任务是找到可以通过最多更换 k 个字符来形成的最长重复子串的长度。 我的解…