【手机上怎么让别人扫码登录王者荣耀 手机上怎么让别人扫码登录qq】2 服务端查询登录结果接口代码,因为逻辑相对简单,所以我先讲这个 。简单描述就是收到客户端请求后 , 用sessionid查询缓存,用每隔2秒轮询查询,一直到查到有结果才返回客户端 。客户端收到登录结果就进行下一步处理 。
/// <summary>/// 返回登录结果/// </summary>/// <param name="sessionId">客户端sessionid</param>/// <returns></returns>[EnableCors][HttpGet][AllowAnonymous]public object CheckLogin(string sessionId){var loginResult = Redis_Utility.Get<object>(#34;login_{sessionId}");while (loginResult == null){Thread.Sleep(2000);loginResult = Redis_Utility.Get<object>(#34;login_{sessionId}");}return loginResult;}3 二维码对应服务端代码 。这个接口地址也就是二维码的链接,即用户微信扫码后打开的地址,此时code参数为空,服务端会把当前页面重定向到微信的授权页面,获取到微信授权code后再跳转回当前接口地址,此时code不为空了,服务端拿到code,结合公众号的appid accesstoken之类就可以从微信得到用户的openid,拿到openid就可以查询用户表,剩下的不用多介绍了吧 。实际开发时 为了使得程序更简单易维护,也可以把接口拆分开,一个是扫码接口,一个是微信授权后跳转回来的接口 , 我为了省事,两个接口合并在一起,通过检查code是否为空,识别出是扫码还是微信授权后跳转回来 。登录成功后 输出一段html代码在手机上显示 。
/// <summary>/// 登录接口/// </summary>/// <param name="sessionId">客户端sessionid</param>/// <param name="code">公众号授权code</param>/// <returns>{userInfo:xxxx, token:xxxx}</returns>[HttpGet][AllowAnonymous]public async Task Login(string sessionId, string? code = null){if (string.IsNullOrEmpty(code)){string redirect_uri = HttpUtility.UrlEncode(Request.GetDisplayUrl());//授权后跳转回来Response.Redirect(#34;https://open.weixin.qq.com/connect/oauth2/authorize?appid={APPID}&redirect_uri={redirect_uri}&response_type=code&scope=SCOPE&state=STATE#wechat_redirect");}else{string openId = await WechatServices.GetOpenId(code);var result = adminServices.Login(openId);if (result.Code == 0){Redis_Utility.Set(#34;expert_admin_login_{sessionId}", result.Data, 1);string html = htmlTemp.Replace("$content", "登录成功");await Response.WriteAsync(html);}else{await Response.WriteAsync(result.Message);}}}码字辛苦,如果觉得有参考价值请点个赞,如果有看不懂的地方欢迎提问,如果有更好更简单的办法欢迎指教!
推荐阅读
- 凌度怎么让雨刮器停在中间 凌度如何让雨刮器停在中间
- 老鼠胶贴到衣服怎么办 老鼠贴上的胶粘到衣服上怎么去除
- 购买二手房怎么样贷款 买二手房咋样贷款
- 手机麦克风没声音怎么回事,手机麦克风没声音怎么回事OPPO
- excel自动生成组织结构图 结构图怎么制作
- 科三怎么考 驾考科目三怎么考试
- 48v电动车上坡没劲怎么办呢? 48v电动车上坡没劲怎么办呢视频
- 观音莲怎么养 观音莲怎么养才长得好
- 汽油泵坏了怎么换 汽油泵坏了如何换
- 在云南昭通犯故意伤害罪具体会被怎么判
