热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于javascript:微信登录前端开发指南

应用场景微信公众号内嵌H5网页调用微信登录在微信浏览器中的网页唤起微信登录界面详情能够查阅微信登录官网文档链接地址性能思路后盾先在微信给开发者提供的测试账号平台上创立利用,并把前台开发同学的微信增加到这个平台中,用于提供测试公众号,平台地址前台拼装各种微信登录必须的参数,并将页面跳转到微信指定的连

应用场景

  1. 微信公众号内嵌H5网页调用微信登录
  2. 在微信浏览器中的网页唤起微信登录界面

详情能够查阅微信登录官网文档 链接地址

性能思路

  1. 后盾先在微信给开发者提供的测试账号平台上创立利用,并把前台开发同学的微信增加到这个平台中,用于提供测试公众号,平台地址
  2. 前台拼装各种微信登录必须的参数,并将页面跳转到微信指定的连贯获取微信登录code参数
  3. 前台解析返回的链接,获取链接中的参数,并将code参数传给后盾
  4. 因为后续获取的参数安全等级较高,所以后续的操作均由后盾实现,并将数据存储在服务端

    • 后盾通过code参数换取access_token参数和openid参数并存储在服务端
    • 后盾再通过access_token参数和openid参数换取用户详细信息,并将这两步包装成接口,让前台调用,返回前端登录状态实现微信登录操作
  5. 如果access_token参数生效,应用refresh_token刷新即可,具体操作查阅文档,个别用不到这步

前端代码

1. 获取code

function getWXcode() {
    
    // 公众号的惟一标识,找公众号管理员提供
    var APPID = '公众号的appid';
    
    // 受权后重定向的回调链接地址,要应用encodeURIComponent()对其进行编码解决
    // !!!留神回调的域名必须先让公众号管理员增加到平安域名中,否则无奈实现跳转
    var REDIRECT_URI = encodeURIComponent('受权后跳转回的页面');
    
    // 常量,返回类型,填写code即可
    var RESPONSE_TYPE = 'code';
    
    // 常量,利用受权作用域
    // snsapi_userinfo (弹出受权页面,可通过openid拿到昵称、性别、所在地。并且, 即便在未关注的状况下,只有用户受权,也能获取其信息 )
    // snsapi_base (不弹出受权页面,间接跳转,只能获取用户openid)
    var SCOPE = 'snsapi_userinfo' || 'snsapi_base';
    
    // 重定向后会带上state参数,开发者能够填写a-zA-Z0-9的参数值,最多128字节
    // 除了此项是非必须参数,其余都是必须要带的参数
    // 留神!!!该参数通常用于判断跳转回来之前的接口是什么作用,比方用于判断是第一次微信登录还是受权过的疾速微信登录
    var STATE = '能够自定义的返回参数';
    
    // 无论间接关上还是做页面302重定向时候,必须带'#wechat_redirect'参数
    // 因为受权操作安全等级较高,所以在发动受权申请时,微信会对受权链接做正则强匹配校验,如果链接的参数程序不对,受权页面将无奈失常拜访
    location.href =
        `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${APPID}&redirect_uri=${REDIRECT_URI}&response_type=${RESPONSE_TYPE}&scope=${SCOPE}&state=STATE#wechat_redirect `;

}

2. 解析参数

function parseData() {
    
    // 截取地址栏?前面的内容
    var search = location.search.slice(1);
    
    // 用&标识宰割成数组
    var arr = search.split('&');
    
    // 解决数组转换成对象,并返回
    var result = {};
    arr.forEach(function(item) {
        var itemArr = item.split('=');
        result[itemArr[0]] = itemArr[1];
    });
}

3. code传给后盾,后盾实现微信登录后续操作后,返回登录状态提醒前端登录胜利还是失败,而后前台持续后续业务逻辑代码编写


推荐阅读
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • 微信平台通过盛派SDK(sdk.weixin.senparc.com)允许服务号和订阅号使用appId和token读取关注用户的个人信息。然而,这一过程需严格遵守隐私保护和数据安全的相关规定,确保用户数据的安全性和隐私性。 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 在本文中,我们将详细介绍如何构建一个用于自动回复消息的XML类。当微信服务器接收到用户消息时,该类将生成相应的自动回复消息。以下是具体的代码实现:```phpclass We_Xml { // 代码内容}```通过这个类,开发者可以轻松地处理各种消息类型,并实现高效的自动回复功能。我们将深入探讨类的各个方法和属性,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 本文介绍了如何使用 Spark SQL 生成基于起始与终止时间的时序数据表。通过 `SELECT DISTINCT goods_id, get_dt_date(start_time, i) as new_dt` 语句,根据不同的时间间隔 `i` 动态填充日期,从而构建出完整的时序数据记录。该方法能够高效地处理大规模数据集,并确保生成的数据表准确反映商品在不同时间段的状态变化。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 本文深入探讨了Ajax的工作机制及其在现代Web开发中的应用。Ajax作为一种异步通信技术,改变了传统的客户端与服务器直接交互的模式。通过引入Ajax,客户端与服务器之间的通信变得更加高效和灵活。文章详细分析了Ajax的核心原理,包括XMLHttpRequest对象的使用、数据传输格式(如JSON和XML)以及事件处理机制。此外,还介绍了Ajax在提升用户体验、实现动态页面更新等方面的具体应用,并讨论了其在当前Web开发中的重要性和未来发展趋势。 ... [详细]
  • AIX编程挑战赛:AIX正方形问题的算法解析与Java代码实现
    在昨晚的阅读中,我注意到了CSDN博主西部阿呆-小草屋发表的一篇文章《AIX程序设计大赛——AIX正方形问题》。该文详细阐述了AIX正方形问题的背景,并提供了一种基于Java语言的解决方案。本文将深入解析这一算法的核心思想,并展示具体的Java代码实现,旨在为参赛者和编程爱好者提供有价值的参考。 ... [详细]
  • 在处理大数相加的问题时,有许多方法可以借鉴。本文介绍了两种不同的函数式编程方法:一种是从网络上找到的经典实现,另一种是作者自行设计的创新方案。通过函数式编程的方式重新实现了这两种方法,其中经典实现简洁明了,而创新方案则在性能和可读性方面有所提升。这些方法不仅适用于大数相加,还可以扩展应用于其他数值计算场景。 ... [详细]
  • Vue 实战基础教程第9讲:深入理解计算属性与侦听器的高效使用
    Vue 实战基础教程第9讲:深入理解计算属性与侦听器的高效使用 ... [详细]
  • 本章节在上一章的基础上,深入探讨了如何通过引入机器人实现自动聊天、表情包回应以及Adidas官方账号的自动抽签功能。具体介绍了使用wxpy库进行微信机器人的开发,优化了智能回复系统的性能和用户体验。通过详细的代码示例和实践操作,展示了如何实现这些高级功能,进一步提升了机器人的智能化水平。 ... [详细]
author-avatar
vaaal52653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有