微信扫码登录的两种方式:利用微信开放平台、利用微信公众平台(微信公众号)

本文主要是介绍微信扫码登录的两种方式:利用微信开放平台、利用微信公众平台(微信公众号),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

微信扫码登录,有两种实现方式:
方式1、微信开放平台是微信为了接入更多第三方应用而开放的接口,依赖公司在【微信开放平台】用【公司营业执照】注册的账号,才能实现扫码登录
方式2、微信公众平台是扫码通过微信公众号授权登录的,借助个人或者公司的微信公众号,生成微信带参二维码,实现扫码关注公众号后登录
大家要明确自己要用哪种方式。

其实还有一种场景是h5页面通过点击某个按钮(实际调用微信的网页授权接口)从而获取用户信息。这种场景可以参考这个视频------->地址

本文只详细介绍第一种方式---------- 【微信开放平台】

第一种方式: 【微信开放平台】

现在微信的使用用户越来越多,如果网站添加上微信登录,就能节省很多用户注册时间,极大缩小了注册流程。会让用户觉得特别方便。接下来我们就说一下怎么来实现PC端微信扫码登录。

第一步:微信开放平台账户申请

网址:微信开放平台

1.首先我们要做的就是进入到微信开放平台申请一个开放平台账户,获得资质!

(1) 支持企业类型(以前只支持企业注册)

(2) 注册之后,会给你提供微信id和微信密钥

ps:注册需要准备营业执照、1-2个工作日审批、300元认证费

进入页面以后,点击注册按钮,开始注册我们的新账户。按照要求一步一步完成注册即可 

2. 申请网站应用名称。

进入到开放平台的“管理中心”=》“网站应用” 然后创建网站应用就能创建自己的网站应用了。

就是说你扫描二维码,它会显示当前网站的应用名称,这个一般在7个工作日内审批。

审核通过后,列表就会可以查看到这个网站应用,点击查看可以获取到appIdappSecret了。

3. 设置回调域名,需要域名地址。

地址作用:这个回调域名是我们扫码完成以后跳转的页面,这时这个页面上会返回微信给我们的code,基于这个code我们就能够拿到微信用户的信息,开进行登录了。设置跟appSecret一样也是在详情页面。


 接下来开始在前端去实现这个扫码功能

微信登录功能官方文档

文档中提到了两种方式去让用户扫码,也可以说是二维码展示的两种方式。

一种是跳转二维码扫描页面,另一种是内嵌式二维码。大家可以根据需要自行选择。

整个流程大致是这样子:

①第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;

②通过code参数加上AppID和AppSecret等发送给后端,后端通过API换取access_token;

③后端通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

接下来详细描述过程:

首先两种二维码展示的方式:

内嵌式二维码:(微信官方文档里面可以找到下面步骤)

1.首先在页面引入http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js,如果网站支持https那就把前缀改为https

2.在需要使用微信登录的地方实例以下JS对象:

var obj = new WxLogin({self_redirect:true,id:"login_container", appid: "", scope: "", redirect_uri: "",state: "",style: "",href: ""});

参数说明: 

ps:这个回调地址就是我们之前在配置文件中配置的redirect_url重定向地址,它是当初注册资质时填写的域名地址。

在页面内定义一个div来显示二维码,这个id要传入创建二维码的方法,下面这个方法接收的ID就是容器的ID。 

这样就可以把二维码展示出来了

跳转二维码扫描页面

 直接请求微信提供的固定的地址,向地址的后面拼接参数即可。

https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirects
 

参数说明:(详见官方文档)

ps:这个回调地址就是我们之前在配置文件中配置的redirect_url重定向地址,它是当初注册资质时填写的域名地址。

通过上面两种二维码的展示方式后,我们可以拿到code,接下来通过微信提供的api换取用户access_token,和openid

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

 

返回说明

正确的返回:

{ 
"access_token":"ACCESS_TOKEN",   //接口调用凭证
"expires_in":7200,               //access_token接口调用凭证超时时间,单位(秒)
"refresh_token":"REFRESH_TOKEN",  //用户刷新access_token
"openid":"OPENID",                //授权用户唯一标识
"scope":"SCOPE",                  //用户授权的作用域,使用逗号(,)分隔
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"   //当且仅当该网站应用已获得该用户的userinfo授权时,才会出现该字段。
}

 

这篇关于微信扫码登录的两种方式:利用微信开放平台、利用微信公众平台(微信公众号)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733776

相关文章

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

Spring中配置ContextLoaderListener方式

《Spring中配置ContextLoaderListener方式》:本文主要介绍Spring中配置ContextLoaderListener方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录Spring中配置ContextLoaderLishttp://www.chinasem.cntene

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片