Demo v8.0.7.40326
这是一组github开源项目的演示网站。本网站源代码在此:Myvas.AspNetCore.Authentication.Demo
- WeixinOpen (open.weixin.qq.com)
- WeixinAuth (mp.weixin.qq.com)
- QQConnect (connect.qq.com)
部署环境
本程序部署在Debian.11-x64服务器上。
注意:本程序必须部署公网服务器80端口上,并在相应微信公众号上配置好“网页服务/网页授权获取用户基本信息”才能正常工作。
触发身份验证
(1)点击UserInfo触发Challenge进入登录页面。
--- 或 ---
(2)点击这里展示一个网址二维码,用手机扫码进入。
--- 或 ---
(3)直接扫码进入微信公众号测试,然后点击菜单[UserInfo]
一、QQ开放平台-网站接入QQ登录
此方式须将网站接入到QQ开放平台。
通常的应用场景是:
1.用户在PC或平板电脑上打开您的网站上某个需要身份验证的网页;
2.网站系统[Authorize]发现该用户尚未登录,于是显示登录页面;
3.用户点击QQ登录图标,用手机QQ扫码,或直接输入QQ账户密码登入;
4.网站系统继续打开目标网页,显示给用户。
二、微信开放平台-网站接入微信登录
此方式无须用户预先关注您的微信公众号。
通常的应用场景是:
1.用户在PC或平板电脑上打开您的网站上某个需要身份验证的网页;
2.网站系统[Authorize]发现该用户尚未登录,于是显示登录页面;
3.用户选择扫码方式登录,掏出手机扫码;
4.网站系统继续打开目标网页,显示给用户。
在登录页面,选择【WeixinOpen】方式登录。
三、微信公众平台-微信内网页授权
此方式必须用户预先关注您的微信号。
通常的应用场景是:
0.用户已经关注了您的微信公众号;
1.用户使用手机微信进入您的微信公众号,点击某菜单;
2.微信公众号服务程序[Authorize]发现该用户尚未登录,于是跳转到登录页面;
3.登录页面发现用户终端是微信客户端,于是直接执行ExternalLogin方法Challenge:WeixinOAuth身份验证;
4*.是否需要用户微信确认;(默认options.SilentMode=true,即不附加snsapi_userinfo)
5.腾讯服务器回调ExternalLoginCallback方法,微信公众号服务程序匹配系统用户,身份验证通过,将目标网页显示给用户。
用到的其他组件
- Myvas.AspNetCore.TencentSms
- 腾讯云短信:发送短信验证码。
- Myvas.AspNetCore.ViewDivert
- 检测微信客户端:在Account/Login中检测客户端,如果是微信客户端则直接使用WeixinAuth身份验证,否则触发标准Identity登录网页。