英文原文  (本文原出处),本博在原文的基础上,进一步分析代码的结构和解释代码。

git 代码

创建一个app:  vue-router-auth

本文详解了如何使用vue-router建立路由记录对路由记录进行检测,以及路由的处理。

1.如何使用vue-router来定义检测我们的routes,防止用户进入某个路由。

2.基于验证状态,如何跳转用户到app的不同部分。

3.用Node.js建立了一个mini server 来处理用户验证

安装Vue cli3

vue ui

插件选择vue-router。

步骤:


建立Node.js Server

//安装数据库
npm install --save sqlite3
// hash passwords
npm install --save bcrypt
//An implementation of JSON Web Tokens.
npm install jsonwebtoken
//用于读json数据。
npm install --save body-parser

后续(具体见英文原文)

现在创建一个nodejs server用于处理user authentication.

创建一个新目录server. 它用于储存所有的使node backend的文件。

1.

创建app.js, 增加配置代码。(点击连接)

引进需要的package, 定义database, 创建一个express server和express router。

然后,定义CORS middleware, ensure we do not run into any cross origin resource errors

然后,定义路径,用于注册一个新的用户

router.post('/register', function(req, res) {...

//  传递请求body到一个databae method, 并传递一个回调函数来处理从数据库来的response data
// 定义了error checks来确保提供准确的信息给user.

当一个user成功注册,我们选择用用户的emai,创建一个验证token。(会用到之前安装的包jwt)

我们使用secret key在配置文件用来sign the auth credentials。

然后,定义路径,注册一个管理员,并登入。

router.post('/register-admin', function(req, res) {
//
} router.post('/login', (req, res) => {
//
}

对login, 使用了bcrypt来判断user的password。

使用express server让app 可用accessible.

这里创建了一个server,端口是3000.

(以上内容需要学习node.js的相关知识)

2. 创建config.js  (见代码)

3. 创建db.js。 这里配置数据库,创建一个新数据库,并创建CRUD数据的方法。


更新vue-router文件

routes.js (点击查看代码)

首先确认要app的pages:

首页,注册页,登陆页,用户个人版,管理员版。

import HelloWorld from '@/components/HelloWorld'
import Login from '@/components/Login'
import Register from '@/components/Register'
import UserBoard from '@/components/UserBoard'
import Admin from '@/components/Admin'

然后,定义router构造器,使用routes构建选项,为每个组件添加路由:

let router = new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
},
//后续略,见git。

这里使用了meta field用于自定义额外的行为。见

Vue Authentication And Route Handling Using Vue-router(详解)的更多相关文章

  1. Vue通信、传值的多种方式,详解

    Vue通信.传值的多种方式,详解 转自:https://blog.csdn.net/qq_35430000/article/details/79291287 一.通过路由带参数进行传值 ①两个组件 A ...

  2. vue.js选择if(条件渲染)详解

    vue.js选择if(条件渲染)详解 一.总结 一句话总结: v-if <!DOCTYPE html> <html lang="en"> <head& ...

  3. vue.js循环for(列表渲染)详解

    vue.js循环for(列表渲染)详解 一.总结 一句话总结: v-for <ul id="example-1"> <li v-for="item in ...

  4. Vue不兼容IE8原因以及Object.defineProperty详解

    Vue不兼容IE8原因以及Object.defineProperty详解 原因概述: Vue.js使用了IE8不能模拟的ECMAScript5特性. Vue.js支持所有兼容ES5的浏览器. Vue将 ...

  5. Vue通信、传值的多种方式,详解(都是干货)

    Vue通信.传值的多种方式,详解(都是干货) 可参考博客: https://blog.csdn.net/qq_35430000/article/details/79291287

  6. [Vue + TS] Using Route events inside Vue

    vue-router introduces new hooks into the component. In this lesson we’ll show you how to use these n ...

  7. 七. Vue Router详解

    1. 认识路由 1.1 路由概念 路由是什么? 路由是一个网络工程里面的术语. 路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动 --- 维基百科 路由器提供了两种机制:路由 ...

  8. vue从入门到进阶:组件Component详解(六)

    一.什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功 ...

  9. vue新手入门之使用vue框架搭建用户登录注册案例,手动搭建webpack+Vue项目(附源码,图文详解,亲测有效)

    前言 本篇随笔主要写了手动搭建一个webpack+Vue项目,掌握相关loader的安装与使用,包括css-loader.style-loader.vue-loader.url-loader.sass ...

随机推荐

  1. 前端 --- 3 css 属性

    一. 标签嵌套规则 块级标签能够嵌套某些块级标签和内敛标签(行内标签) 内敛标签不能嵌套块级标签,只能嵌套内敛标签 二.   属性 1.宽和高 (块级标签能够设置高度和宽度 内敛标签不能设置,设置了没 ...

  2. markdown的流程图实现和代码语法着色

    用flowchart为markdown添加流程图 举个例子如下,根据这个例子大家就能看懂我到底是怎么实现的 <!DOCTYPE html> <html> <head> ...

  3. 利用sqlmap对网站进行sql注入检测

    1.下载sqlmap github地址:https://github.com/sqlmapproject/sqlmap/zipball/master 2.sqlmap的运行环境需要python,这个网 ...

  4. DNS 基础

    DNS Domain Name System:域名系统,主要用来将域名解析为IP.DNS以及相关系统存在,主要有两个原因: 可以让人容易记住名字,而不是记住IP: 它允许服务器改变IP,但是采用同样的 ...

  5. 重要, 要播放音乐视频等多媒体: 安装fedora23中的多媒体编码器

    区分: 大多数用户和高级用户? 删除 dnf remove software-name 启动软件管理器: gnome-software. 要删除系统 "自带的" 软件, 如empt ...

  6. Win32汇编学习(3):简单的窗口

    这次我们将写一个 Windows 程序,它会在桌面显示一个标准的窗口,以此根据代码来学习如何创建一个简单的窗口. 理论: Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows ...

  7. hihoCoder week3 KMP算法

    题目链接 https://hihocoder.com/contest/hiho3/problems kmp算法 #include <bits/stdc++.h> using namespa ...

  8. spring boot + session+redis解决session共享问题

    自己没有亲自试过,不过看了下这个例子感觉靠谱,以后做了测试,在加以说明. PS:后期经验证,上面例子可行.我们平时存session里面的值,直接存在了redis里面了.

  9. mybatis配置文件namespace用法总结

    本文为博主原创,未经允许不得转载: 由于在应用过程中,发现namespace在配置文件中的重要性,以及配置的影响,在网上看了很多博客,发现很多人对namespace存在误解, 所以总结一下namesp ...

  10. js旋转V字俄罗斯方块

    实现效果如图,也就是一个图像的旋转.注意,旋转后的文字是相对应的,而且文字还是立起的.第一次点击时显示,第二次点击时开始旋转.下面是我做这个效果的记录,方法这么差,我也就不说什么了. 先上HTML/C ...