作者:liqiqinai | 来源:互联网 | 2023-05-18 13:46
好久不进行微信开发了,有些遗忘了,在做identity微信授权登录,所以配置下账号。1.环境搭建和配置;你可能说这个有什么好说的,那么问题就来了,授权域名问题,这是个头等问题,下
好久不进行微信开发了,有些遗忘了,在做identity微信授权登录,所以配置下账号。
1.环境搭建和配置;
你可能说这个有什么好说的,那么问题就来了,授权域名问题,这是个头等问题,下面看操作:
你可能会问这是啥东西,嗯,这是内网穿透的一个功能灵感源自QQ浏览器的插件(已被下架)。这个东西是 NATAPP,,,自行百度,
1.1.解决域名问题
在其官网注册---->登录之后----->右侧选择购买隧道---->免费,然后类似如下填写:
截图中我有说明,所以不再写。点击保存之后,页面不要关掉,需要用到上面的authtoken,然后,点击下载 根据自己机器选择不通的版本,先别急着打开,创建一个名称为config.ini的文件,和 下载的exe文件同目录
复制如下配置:
#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -cOnfig= 可以指定任意config.ini文件
[default]
authtoken=你的authtoken #对应一条隧道的authtoken
clienttoken= #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none #log 日志文件,可指定本地文件, nOne=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy= #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空
此时再双击 .exe的工具即可
执行结果如开篇见到的结果。
1.2.修改项目中的配置
项目修改如下(右击项目---->属性):
这时候再F5抛起我们的项目就行了,完美解决了无需发布、无需域名 就可以直接进行微信开发测试。
跑起项目结果:
使用的域名就是natapp给我们生成的。
1.3.微信测试配置
测试账号地址:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
测试配置:
这里有第一个关卡需要闯过,就是这个URL,和token的配置,,,不测试下,,鬼知道怎么配。
先看我们的API中的 最后一个接口(上截图中的最后一个),代码如下:
///
/// 微信测试token验证地址
///
///
[HttpGet]
public async Task CheckSignature()
{
var signature = HttpContext.Request.Params("signature");
var echostr = HttpContext.Request.Params("echostr");
var timestamp = HttpContext.Request.Params("timestamp");
var nOnce= HttpContext.Request.Params("nonce");
string[] ArrTmp = { AppSettingManager.Get("ESoftor:Jwt:Secret"), timestamp, nonce };
Array.Sort(ArrTmp); //字典排序
string tmpStr = string.Join("", ArrTmp);
//tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
tmpStr = Security.HashHelper.GetSha1(tmpStr);
tmpStr = tmpStr.ToLower();
if (tmpStr == signature)
{
return await Task.FromResult(Content(echostr));
}
return await Task.FromResult(Content(""));
}
View Code
这个接口就是用来验证这个sign的,算法规则是WX官方定义的,,,你也可以直接复制我这个,完全OK。
然后跑起我们的项目,并在 if判断等于的那里 加上断点,这时候回到微信配置,输入 域名+api/controller名称/action名称,我这里是 http://9zdkkz.natappfree.cc/api/Identity/CheckSignature
并填写token(随便写),但是要和你计算 sign的时候使用的一样,也就是我配置在 配置文件中的AppSettingManager.Get("ESoftor:Jwt:Secret")的值
然后点击 微信配置的 提交,这时候就会进入我们的项目 并被端点到。
其实重点是 网页账号 -- > 网页授权获取用户基本信息 的配置,填入域名即可,上面的那个其实可以不用填,但是可以帮助我们测试我们的配置是否正确。
嗯,完美。