最快的方式是直接nuget安装AspNetCore.Authentication.WeChat包。

想要知道是如何实现的,可以看下面github上面的源码。

源码在这里:https://github.com/china-live/QQConnect

使用方式:

  1. 安装nuget的包以后,在startup.cs中添加微信授权认证并配置appId和AppSecret,使用缓存保存State数据(微信State Too Long 报错 由于微信的设置,state最多128字节,但是默认生成的state会超出限制,所以需要加入缓存)

    iservices.AddAuthentication().AddWeChat(options =>{options.AppId = Configuration["WeixinSetting:WeixinAppId"];options.AppSecret = Configuration["WeixinSetting:WeixinAppSecret"];options.UseCachedStateDataFormat = true;});

  2. 新建一个Controller,编写action
            /// <summary>/// 微信授权登录/// </summary>/// <param name="returnUrl">用户尝试进入的需要登录的页面</param>/// <returns></returns>
            [AllowAnonymous]public ActionResult WxLogin(string returnUrl){string redirectUrl = Url.Action("BaseCallback",new { ReturnUrl = returnUrl });var properties = signInManager.ConfigureExternalAuthenticationProperties("WeChat", redirectUrl);return new ChallengeResult("WeChat", properties);}/// <summary>/// 回调/// </summary>/// <param name="provider"></param>/// <param name="returnUrl">用户最初尝试进入的页面</param>/// <returns></returns>
            [AllowAnonymous]public async Task<IActionResult> BaseCallback(string provider = null, string returnUrl = "/"){try{ExternalLoginInfo info = await signInManager.GetExternalLoginInfoAsync();if (info == null){return RedirectToAction(nameof(Login));}var result = await signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, false);if (result.Succeeded){return Redirect(returnUrl);}else{Account user = new Account{OpenId = info.Principal.FindFirst(ClaimTypes.NameIdentifier).Value,UserName =info.Principal.FindFirst(ClaimTypes.NameIdentifier).Value};IdentityResult identResult = await userManager.CreateAsync(user);if (identResult.Succeeded){identResult = await userManager.AddLoginAsync(user, info);if (identResult.Succeeded){await signInManager.SignInAsync(user, false);return Redirect(returnUrl);}}return AccessDenied();}}catch (Exception ex){return Content("发生错误:" + ex);}}

转载于:https://www.cnblogs.com/dbxiaobai/p/10690485.html

.net core identity集成微信授权登录相关推荐

  1. iOS微信授权登录集成

    iOS微信授权登录集成 iOS微信授权登录集成,具体的过程参考官方的文档 微信集成官方Demo地址: iOS资源下载 不错的文章: iOS微信登录集成 iOS 微信第三方登录的简单实现 准备工作 1. ...

  2. html5+ mui框架 微信授权登录后跳回app无任何回调事件

    2019独角兽企业重金招聘Python工程师标准>>> 微信授权登录可以调起微信,但是在微信上点击确认登陆后跳回app,但是之后无任何回掉事件. 问题原因: 1 因为我在集成Face ...

  3. ios微信登录不上服务器,iOS微信授权登录

    首先需要确保你的App应用在微信开发平台上注册创建并获得对应的接口,对应登录.支付等功能还涉及付费,具体申请流程就不再这里说了.到开放平台->管理中心->移动应用->查看应用,确认你 ...

  4. 五行代码搞定微信授权登录

    Authing 通过 SDK 为开发者提供了一种快速在微信网页中获取用户信息并完成登录的方法.如果用户在微信客户端中访问第三方网页.公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑 ...

  5. android友盟微信授权登录清除,【转载】Android友盟SDK微信授权登录接入

    微信授权登录接入需要先到微信开放平台申请好应用的APPID,交纳300大洋费用得到授权登录权限后才能使用,此处不再赘述. 接入的两种方式 -- 微信SDK接入:使用微信官方SDK接入,需要分" ...

  6. Android开发丶集成微信原生登录

    好久没写博客了,大概是与ReactNative大战半月已经有点疲惫了,说起集成微信三方登录,还记得上次实现功能还是刚参加工作时,用Mob的ShareSDK来集成实现的,该平台集成了数个主流平台的分享和 ...

  7. html5+ mui框架 微信授权登录跳出手机号码登录方式

    2019独角兽企业重金招聘Python工程师标准>>> 在HBuilder真机运行微信授权登录成功,但是使用ios离线集成后,点击微信授权登录,会跳出微信手机号码登录方式(会让你填入 ...

  8. IOS实现微信授权登录

    IOS实现微信授权登录 微信是一个在开发中经常会使用到的平台,比如微信登录.授权.支付.分享.今天我们来看看如何在自己的应用里面集成微信授权. 1.微信授权的定义 微信OAuth2.0授权登录让微信用 ...

  9. php 微信登录并绑定,Laravel 集成微信用户登录和绑定的实现

    最近主要在忙活微信与支付宝平台的对接与开发,本篇就基于后端层面来讲述一下微信的登录与绑定实现. (一).申请微信开放平台 最首先的话就是需要去微信开发中心,创建一个账号,然后创建自己的移动或网站应用. ...

最新文章

  1. win10安装dorcker笔记
  2. matlab 范德蒙德矩阵,Matlab中fft与fwelch有什么区别?如何用fft求功率谱?
  3. WCF 宿主与通信模式(二)
  4. linux c之用fputc和fgetc复制文件并且打印在终端
  5. byteman_使用Byteman和JUnit进行故障注入
  6. python安装requests库提示更新_解决已经安装requests,却依然提示No module named requests问题...
  7. HTTP GET请求URL中IP被异常替换的问题
  8. 1987:【20CSPS提高组】括号树P5658 [CSP-S2019] 括号树
  9. Python | 程序查找列表中最小和最大元素的位置
  10. 什么是全球位置编号(GLN)?
  11. 看病(版权所有翻版必究)
  12. Cortex M3 Bit-banding简介
  13. 项目管理心得--第一篇
  14. HTML 表格与表单 个人简历
  15. 判断bug属于前端还是后端
  16. S3 Drive支持以及FIPS 140-2兼容性
  17. modelandview找不到视图_当一个测试工程师准备找工作,需要准备什么?
  18. Matlab的rand函数以及randi函数使用
  19. 如何快速的把图片转换为PDF文件格式
  20. Ios php格式视频,ios视频格式转换器,ios视频格式mov转mp4,视频格式转换器

热门文章

  1. 微信群机器人助手多群同步群发消息,管理100个微信群!
  2. P4961 小埋与扫雷【dfs】
  3. 设计模式之命令模式(C++)
  4. JS 键盘事件、触摸事件
  5. 164. Maximum Gap 1
  6. matlab isosurface函数绘制隐函数曲面
  7. 基于抽象语法树的Online Judge语义查重系统设计与实现(毕设)
  8. 8086/8088 指令执行流水线断流原因
  9. 命令行——rm命令(删除)详解
  10. 原码、反码、补码概念及转换