首页 > 其他分享 >Vitepress 文档加微信网页授权登录功能

Vitepress 文档加微信网页授权登录功能

时间:2024-09-24 15:47:58浏览次数:9  
标签:网页 Vitepress 加微信 微信 域名 文档 vitepress 授权

目录

前言​

准备事项​

实现步骤​

1. 建Vitepress文档项目​

2. 公众号配置网页授权域名​

3. 授权服务端开发​

4. 开发Vitepress登录组件​

功能预览​


前言

一般情况下使用Vitepress 写在线文档是用不上登录功能。

如果想要实现权限控制、付费阅读等功能,不加个登录就不合适了。完整的注册登录逻辑,流程麻烦,用户也大概率记不住账号密码。所以微信扫码登录,很适合这种简单场景。

我加这个微信网页授权功能,目的是实现部分文档需要开通会员后可读。

准备事项

我考虑过的三个方案:

  • 方案1: 公众号网页授权,用户扫码即可,可以不用关注公众号,用户体验好;
  • 方案2: 引导关注公众号,在公众号内发送授权链接或者验证码。如何非常希望用户关注你的公众号,可以选这个方式;
  • 方案3: 使用微信开放平台,申请网站appid,走PC网站的接入流程;

方案1、方案2 需要有一个已经实名认证的公众号。方案3要实名认证开放平台,反正300块钱是跑不掉。

我这里已经有实名认证好的服务号,对关注量也没什么需求,所以选择方案1来实现。

需要先准备以下资源:

  1. 已经实名认证的服务号;
  2. 域名(要备案、要配置https);
  3. 服务器;

实现步骤

1. 建Vitepress文档项目

yarn add -D vitepress
yarn vitepress init

基础项目文件结构:

.
├─ docs
│  ├─ .vitepress
│  │  └─ config.js
│  ├─ api-examples.md
│  ├─ markdown-examples.md
│  └─ index.md
└─ package.json

2. 公众号配置网页授权域名

授权域名指接收微信授权回调的链接中的域名。

微信公众号平台->设置与开发->公众号设置->功能设置->网页授权域名

只有这里配置过的域名,才能接收微信回调的code参数。如果你的链接不支持https,就不要开启强制https校验。

网页授权域名只有两个位置,如果不够用,请看《微信网页授权域名数量限制2个解决方法》

3. 授权服务端开发

微信文档:网页授权

基本按这个文档做即可,这里提示几个注意点。

  1. 参数redirect_uri链接的域名必须是上面配置的网页授权域名,不然会提示错误:redirect_uri域名与后台配置不一致。
  2. 参数scope ,如果获取openid之后还要昵称与头像,必须使用 snsapi_userinfo
  3. 参数state,回调时原样返回,特殊场景可以用来带一些标识,不需要可以不用,注意长度最多128字节。

需要提供以下几个接口:

  1. 获取授权链接,拼接好授权链接返回。电脑浏览器端生成二维码提示用户扫,手机微信端直接跳转。
  2. 接受微信回调,接受微信回调跳转拼接的code与state参数,根据code拿openid、accessToken,再继续拿用户昵称与头像,后台自动注册用户写表写会话。
  3. 查询用户信息,用于前端根据会话查用户信息,返回头像与昵称。

4. 开发Vitepress登录组件

目录结构

.
├─ docs
│  ├─ .vitepress
│  │  ├─ theme
│  │  │  ├─ layout
│  │  │  │  ├─ login
│  │  │  │  │  └─ Login.vue
│  │  │  │  └─ Layout.vue
│  │  │  └─ index.js
│  │  └─ config.js
│  ├─ api-examples.md
│  ├─ markdown-examples.md
│  └─ index.md
└─ package.json

这里的目录只有theme是新创建的,其它都是你项目的。

文件 docs/.vitepress/theme/index.js

javascript

import DefaultTheme from 'vitepress/theme'  
import Layout from './layout/Layout.vue'  
  
export default {  
    extends: DefaultTheme,  
    Layout  
}

文件docs/.vitepress/theme/layout/Layout.vue

<script setup>  
import DefaultTheme from 'vitepress/theme';  
import Login from './login/Login.vue';  
  
const {Layout} = DefaultTheme  
  
</script>  
  
<template>  
  <Layout>  
    <template #nav-bar-content-after>  
      <Login></Login>  
    </template>  
  </Layout>  
</template>

Vitepress提供了很多插件,显示在右上角导航位置的插槽名字是nav-bar-content-after

文件docs/.vitepress/theme/layout/login/Login.vue 是一个常规的vue组件,展示头像与昵称。

功能预览

演示效果,右上角用户头像与昵称。也可以直接看网站 https://vitepress.mosong.cc

标签:网页,Vitepress,加微信,微信,域名,文档,vitepress,授权
From: https://blog.csdn.net/zingsono/article/details/142470802

相关文章

  • java中的工具类并创建工具方法文档
    编写一个方法,例如在一个有序数组里查找所需要的数字的下标publicstaticvoidsubscript(int[]a){Scannersc=newScanner(System.in);System.out.println("输入要查找的数:");intb=sc.nextInt();intx=a[a.length......
  • 构建SpringBoot驱动的文档管理平台
    第1章绪论1.1背景及意义随着社会的快速发展,计算机的影响是全面且深入的。员工生活水平的不断提高,日常生活中员工对在线文档方面的要求也在不断提高,在线文档管理受到广大员工的关注,使得在线文档管理系统的开发成为必需而且紧迫的事情。在线文档管理系统主要是借助计算机,通......
  • DRD交互设计文档
    一:简介设计需求文档DRD(DesignRequirementsDocumen):行业内叫交互(设计)说明文档,交互说明就是原型图边上的注释,对原型图进行解释,通常小公司使用的比较多,一般大型公司写在word文档中。其实就是需求文档,和需求文档不同的是交互设计文档更侧重交互,不会介绍需求背景等内容,只会介绍实现该功......
  • 【软件文档】项目质量保证计划书(Word原件)
    1概述2质量目标3项目基本情况4资源4.1人员4.1.1组织结构4.1.2职责4.2工具及设施5质量保证的主要工作6质量保证工作量估算7质量保证工作提交的产物8变更管理9评价标准10形成的记录软件全套资料部分文档清单:工作安排任务书,可行性分析报告,立项申......
  • 如何使用Kimi编写软件设计文档
    在软件开发过程中,设计文档是不可或缺的一环,它帮助团队成员理解系统架构、业务流程和用例。Kimi作为一个强大的AI助手,可以在这个过程中发挥重要作用。本文将介绍如何使用Kimi来编写软件设计文档,包括流程图和用例图的制作,并通过一个订单管理的实例来演示其应用。为什么选择Kimi......
  • 写文档-画UML图-编程的秘密武器:Kimi智能助手
    在快速发展的软件开发领域,如何高效地编写需求分析文档、软件设计文档以及代码,成为每位程序员和架构师面临的重要挑战。今天,我要向大家介绍一款强大的工具——Kimi智能助手,它将帮助你提升工作效率,优化开发流程。Kimi的强大功能需求分析文档编写Kimi能够快速梳理项目背景、目......
  • Java项目实战II基于Java+Spring Boot+MySQL的大学生入学审核系统(文档+源码+数据库)
    目录一、前言二、技术介绍三、系统实现四、文档参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者一、前言二、技术介绍语言:Java使用框架:SpringBoot前端技术:JS、Vue、css3开发工具:IDEA/Eclipse数据库:MySQL5.7/8.0数......
  • 基于SpringBoot考研资讯管理系统的设计和实现(源码+LW+调试文档)
     目录:完整视频演示:系统架构:程序运行截图:核心代码参考:   数据库sql:项目技术介绍:java介绍:Mysql数据库介绍:为什么选择我:获取源码:......
  • 基于SpringBoot医疗管理系统的设计和实现(源码+LW+调试文档)
     目录:完整视频演示:系统架构:程序运行截图:核心代码参考:   数据库sql:项目技术介绍:java介绍:Mysql数据库介绍:为什么选择我:获取源码:......
  • 志愿服务管理系统(含源码+sql+视频导入教程+文档)
    ......