<template>
<div id="app">
<h1>微信授权登陆</h1>
<div>
<div>
<span>手机号</span>&nbsp;&nbsp;
<input type="number" :value="account" placeholder="请输入手机号">
</div>
<br>
<div>
<span>验证码</span>&nbsp;&nbsp;
<input type="text" :value="smsCode" placeholder="请输入验证码" maxlength="6">
</div>
<br>
<button @click="init">授权登陆</button>
<p>{{code}}</p>
</div>
</div>
</template> <script>
/**
* @description
*
* 官方网文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
*
* 网页授权步骤
*
* 1、拼接授权地址
* 2、访问授权地址
* 3、微信回调携带 code 参数
* 4、code 发送给服务器获取 openId token 等信息 结束
*
* 注意事项:
* 1、redirect_uri 重定向地址.
* 1)线上环境:该参数是对应线上的域名,例如:https:xxx.web.com/ 这个地址要可以访问到你的 web 项目
* 2)开发环境:可能访问路径是:http://192.168.0.18:8080 但是这是内网地址,外网无法访问需要借助 内网穿透 工具
* 把内网映射到外网 例如: http://n9yjxe.natappfree.cc -> 127.0.0.1:8080 我这里就可以填写 http://n9yjxe.natappfree.cc/ 这个地址
*
* 2、微信公众号管理端配置 https://mp.weixin.qq.com/cgi-bin/settingpage?t=setting/function&action=function&token=1538596787&lang=zh_CN
* 1)设置与开发->公众号设置->功能设置->网页授权域名,配置你对应的线上域名或内网穿透域名,是域名没有http://或https:// 访问路径等
* 2)文件校验域名,这个步骤是微信要验证你的域名,放在域名根路径下要可以访问到 例如:https:xxx.web.com/MP_verify_JrxFeFmrqcxyTPAW.txt 即可
* 3)如果是开发环境,MP_verify_JrxFeFmrqcxyTPAW 放在项目 public 开启内网穿透就可以了
* 3、内网穿透 https://natapp.cn/
     * 4、使用微信开发工具进行网页调试,需要把自己添加为微信公众号的开发者才可以
*
*/ // 微信授权登陆地址
const WX_AUTH_URL = 'https://open.weixin.qq.com/connect/oauth2/authorize?';
// 重定向参数-固定写法
const REDIRECT = '#wechat_redirect';
export default {
data() {
return {
account: '',
smsCode: '',
params: {
appid: 'wxca62acc6a4560ddc', // 公众号 APP ID
redirect_uri: `${encodeURI('http://n9yjxe.natappfree.cc/')}`, // 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
response_type: 'code', // 固定写法
scope: 'snsapi_base' // snsapi_base 静默授权获取 open id ;snsapi_userinfo 需要用户授权,获取详细信息
// state:'code', // a-zA-Z0-9的参数值,最多128字节
},
code: '', // 微信返回 code
}
},
created() {
// 获取地址参数
const params = new URLSearchParams(location.search);
this.code = params.get('code');
console.log(this.code)
},
methods: {
init() {
// 访问地址
const access_url = WX_AUTH_URL + `${new URLSearchParams(this.params)}` + REDIRECT;
// 这些需要判断没有 code 情况拉起授权登陆,有就结束放在重复拉起授权登陆
if (!this.code) {
location.href = access_url;
}
}
}
}
</script> <style>
button {
background-image: linear-gradient(219deg, #00A45A 0%, #03CE72 100%);
color: #FFFFFF;
width: 100%;
height: 42px;
box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(0, 164, 90, 0.08);
border-radius: 48px;
font-size: 38rpx;
border: none;
} input {
height: 29px;
width: 90%;
border-radius: 10px;
border: 1px solid #cfcfcf;
padding: 2px 13px;
}
</style>

效果图

超全、超简单Vue微信公众号授权登录指南的更多相关文章

  1. 【tp5.1】微信公众号授权登录及获取信息录入数据库

    微信公众号开发文档链接:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432 微信公众号授权登录分为两种: 1.以 ...

  2. uniapp - 微信公众号授权登录

    [缘由] 采用uniapp进行微信小程序和微信公众号双版本开发:考虑到用户唯一性,我们后端确定了以“unionid”.作为唯一标识. 有的小伙伴估计也是刚入这坑,我就简单说一下步骤流程   [摸索] ...

  3. 解决微信公众号授权登录和开放平台微信第三方应用授权登录获取到的用户Openid关联问题

    开发背景: 最近一段时间一直在做关于微信方面的网站应用开发,这段时间也收获的不少关于微信开发方面的开发技能,接触的比较多的主要有微信公众号和微信网站app第三方登录授权,以及微信会员卡,优惠券和扫描二 ...

  4. 微信公众号授权登录,整合spring security

    公司的业务需求,对接了微信公众号授权,通过微信公众号的接口拿到用户信息进行业务系统的登录,话不多说上代码,我的实现方式是整合了spingSecurity 首先是接口 @PostMapping(&quo ...

  5. 微信公众号授权登录后报redirect_uri参数错误的问题

      在进行微信公众号二次开发的时候,需要通过授权码模式来进行微信授权.比如,在进行登录的时候,用户点击了登录按钮,然后弹出一个授权框,用户点击同意后,就可以获取用户的OpenId等信息了.这篇文章主要 ...

  6. 微信公众号授权登录,提示“redirect_uri 参数错误”

    做微信公众号开发授权登录的时候遇到的坑... 后台服务用node,index.js相关代码如下: const oauth = new OAuth(conf.appid, conf.appsecret) ...

  7. 线程安全使用(四) [.NET] 简单接入微信公众号开发:实现自动回复 [C#]C#中字符串的操作 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化 自已动手做高性能消息队列 自行实现高性能MVC WebAPI 面试题随笔 字符串反转

    线程安全使用(四)   这是时隔多年第四篇,主要是因为身在东软受内网限制,好多文章就只好发到东软内部网站,懒的发到外面,现在一点点把在东软写的文章给转移出来. 这里主要讲解下CancellationT ...

  8. 教你如何入手用python实现简单爬虫微信公众号并下载视频

    主要功能 如何简单爬虫微信公众号 获取信息:标题.摘要.封面.文章地址 自动批量下载公众号内的视频 一.获取公众号信息:标题.摘要.封面.文章URL 操作步骤: 1.先自己申请一个公众号 2.登录自己 ...

  9. Chrome插件:微信公众号自动登录(chrome.extension)

    manifest.json: { "manifest_version": 2, "name": "WX.AutoLogin", " ...

  10. vue微信公众号、H5微信支付

    1.H5微信支付 后台会返回一个URL,前端直接跳转就OK(需要你传给后台一个ip,必须保证在同一域名下) 使用window.location.href =res.data;进行页面跳转到支付界面(r ...

随机推荐

  1. 带你玩转OpenHarmony AI:基于Seetaface2的人脸识别

    简介 随着时代的进步,全民刷脸已经成为一种新型的生活方式,这也是全球科技进步的又一阶梯,人脸识别技术已经成为一种大趋势,无论在智慧出行.智能家居.智慧办公等场景均有较广泛的应用场景,本文介绍了基于Se ...

  2. 你真会判断DataGuard的延迟吗?

    这是一个比较细节的知识点,但必须要理解这个才能准确判断Oracle ADG的延迟情况. 以前做运维工作时,记得是要同时重点关注v$dataguard_stats视图中的几个字段的值,分别是:NAME. ...

  3. Python3学习--正则表达式

    import rer = re.match("Chen\d+","Chen123ronghua123")r = re.match(".+", ...

  4. CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户

    CentOS 5.5编译安装vsftpd-2.3.4配置虚拟用户 2012-02-22 17:18:15|  分类: rhel_vsftp|举报|字号 订阅 centos 5.5编译安装vsftpd- ...

  5. 基于Canvas实现的简历编辑器

    基于Canvas实现的简历编辑器 大概一个月前,我发现社区老是给我推荐Canvas相关的内容,比如很多 小游戏.流程图编辑器.图片编辑器 等等各种各样的项目,不知道是不是因为我某一天点击了相关内容触发 ...

  6. sql 语句系列(更新系列)[八百章之第六章]

    使用另一个表更新记录 有时候我们的数据不会立即去更新,而是存在另外一张表中等待更新,这是在日常开发中常见的操作. update e set e.SAL=ns.SAL+e.SAL, e.COMM=ns. ...

  7. springboot+thymeleaf+mybatis实现甘特图(代码非常详细)

    首先我们要明白:这个甘特图需要哪些动态数据. (1)需要:ID,tName,number,计划开始时间,开始时间,计划结束时间,结束时间,项目负责人,参与人,知情人ID,计划时长(可以计算得出的,不必 ...

  8. 简单的使用Echars制作柱状图

    简单的使用Echars制作柱状图 html如下 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  9. 力扣784(java)-字母大小写全排列(中等)

    题目: 给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串. 返回 所有可能得到的字符串集合 .以 任意顺序 返回输出. 示例 1: 输入:s = " ...

  10. 作业帮在线业务 Kubernetes Serverless 虚拟节点大规模应用实践

    ​简介:目前方案已经成熟,高峰期已有近万核规模的核心链路在线业务运行在基于阿里云 ACK+ECI 的 Kubernetes Serverless 虚拟节点.随着业务的放量,未来运行在 Serverle ...