passport

koa 项目实战(九)passport验证token

杀马特。学长 韩版系。学妹 提交于 2020-03-27 09:20:59
1.安装模块 npm install koa-passport -D npm install passport-jwt -D 2.解析token 根目录/config/passport.js const JwtStrategy = require('passport-jwt').Strategy, ExtractJwt = require('passport-jwt').ExtractJwt; const keys = require('../config/keys'); const opts = {}; opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken(); opts.secretOrKey = keys.secretOrkey; const mongoose = require('mongoose'); const User = mongoose.model('users'); module.exports = passport => { passport.use(new JwtStrategy(opts, async function (jwt_payload, done) { // console.log(jwt_payload); const user = await User.findById

Oracle误删除表数据后的恢复具体解释

流过昼夜 提交于 2020-03-12 04:51:51
Oracle误删除表数据后的恢复具体解释 測试环境: SYSTEM:IBM AIX 5L Oracle Version :10gR2 1. undo_retention參数的查询 与 改动 使 用 show parameter undo 命令查看当 前 的数据库參数 undo_retention 设置。 显演示样例如以下: SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS2 undo_retention(保持力), 900 单位是 秒 , 即 15分钟 。 改动默认的undo_retention參数设置: SQL> ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; System altered. SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- -

Oracle误删除表数据后的恢复具体解释

梦想的初衷 提交于 2020-03-05 17:24:57
Oracle误删除表数据后的恢复具体解释 測试环境: SYSTEM:IBM AIX 5L Oracle Version :10gR2 1. undo_retention參数的查询 与 改动 使 用 show parameter undo 命令查看当 前 的数据库參数 undo_retention 设置。 显演示样例如以下: SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS2 undo_retention(保持力), 900 单位是 秒 , 即 15分钟 。 改动默认的undo_retention參数设置: SQL> ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; System altered. SQL> show parameter undo NAME TYPE VALUE ------------------------------------ ----------- -

Laravel PassPort API 认证之基本实现

浪子不回头ぞ 提交于 2020-03-05 07:38:06
前言 最近在搞一个小小的项目,练练手,需要前后端分离,所以后端就得提供api接口,那么接口就得需要认证! 所以选择了PassPort来做认证! 参考博客文档 如果我有写的不好的地方,大家可以参看这些博客文档,文中有些文字来源于这些博客以及文档 官方文档: https://learnku.com/docs/laravel/6.x/passport/5152#issuing-access-tokens https://qianjinyike.com/laravel-passport-%e5%af%86%e7%a0%81%e6%a8%a1%e5%bc%8f/ https://www.bilibili.com/video/av74879198 https://www.jianshu.com/p/babb5797788f https://xueyuanjun.com/post/19485.html#bkmrk-%E4%BB%A4%E7%89%8C%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F https://www.cnblogs.com/daizhongxing/p/11424343.html https://blog.csdn.net/wepe12/article/details/78749326 https://www.cnblogs.com/ifme/p

【58沈剑 架构师之路】数据库索引,到底是什么做的?

流过昼夜 提交于 2020-03-02 04:31:00
问题1. 数据库为什么要设计索引? 图书馆存了1000W本图书,要从中找到《架构师之路》,一本本查,要查到什么时候去? 于是,图书管理员设计了一套规则: (1)一楼放历史类,二楼放文学类,三楼放IT类… (2)IT类,又分软件类,硬件类… (3)软件类,又按照书名音序排序… 以便快速找到一本书。 与之类比,数据库存储了1000W条数据,要从中找到name=”shenjian”的记录,一条条查,要查到什么时候去? 于是,要有 索引 , 用于提升数据库的查找速度 。 问题2. 哈希(hash)比树(tree)更快,索引结构为什么要设计成树型? 加速查找速度的 数据结构 ,常见的有两类: (1) 哈希 ,例如HashMap,查询/插入/修改/删除的平均时间复杂度都是 O(1) ; (2) 树 ,例如平衡二叉搜索树,查询/插入/修改/删除的平均时间复杂度都是 O(lg(n)) ; 可以看到, 不管是读请求,还是写请求 , 哈希类型的索引,都要比树型的索引更快一些 ,那为什么,索引结构要设计成树型呢? 画外音:80%的同学,面试都答不出来。 索引设计成树形,和SQL的需求相关。 对于这样一个 单行查询 的SQL需求: select * from t where name=”shenjian”; 确实是哈希索引更快,因为每次都只查询一条记录。 画外音:所以,如果业务需求都是单行访问

NewBanker wbs架构图

纵然是瞬间 提交于 2020-02-27 14:55:09
架构设计的目的 架构设计的主要目的:是为了解决软件系统复杂度带来的问题 。 个人感悟是:架构即(重要)决策,是在一个“ 有约束的盒子 ”里去求解或接近最优解。这个“ 有约束的盒子 ”是团队经验、成本、资源、进度、业务所处阶段等所编织、掺杂在一起的综合体(人,财,物,时间,事情等)。架构无优劣,但是存在恰当的架构用在合适的软件系统中,而这些就是决策的结果。 软件系统复杂度 软件领域的复杂性 体现在两个方面: 1. 结构的复杂性 结构复杂的系统几乎毫无例外具备两个特点: 组成复杂系统的组件数量更多; 同时这些组件之间的关系也更加复杂。 2. 逻辑的复杂性 意识到结构的复杂性后,我们的第一反应可能就是“降低组件数量”,毕竟组件数量越少,系统结构越简。最简单的结构当然就是整个系统只有一个组件,即系统本身,所有的功能和逻辑都在这一个组件中实现。 不幸的是,这样做是行不通的,原因在于除了结构的复杂性,还有逻辑的复杂性,即如果某个组件的逻辑太复杂,一样会带来各种问题。 逻辑复杂的组件,一个典型特征就是单个组件承担了太多的功能。 架构设计三原则 1 合适原则: 合适优于业界领先 架构无优劣,但存合适性。“汝之蜜糖,吾之砒霜”;架构一定要匹配企业所在的业务阶段;不要面向简历去设计架构,高大上的架构不等于适用;削足适履与打肿充胖都不符合合适原则;所谓合适,一定要匹配业务所处阶段

登陆验证koa-passport中间件的简单使用

社会主义新天地 提交于 2020-02-14 07:06:31
简述 koa-passport 是 koa 的一个中间件,它实际上只是对 passport 的一个封装。利用 koa-passport 可以简便的实现登录注册功能,不但包括本地验证,还有很多提供第三方登录的模块可以使用。这篇博客只讲一下登陆验证这块的一些简单内容 配置 安装依赖 npm install - S koa - passport npm install - S passport - local 引包 import passport from 'koa-passport' import LocalStrategy from 'passport-local' import UserModel from '../../dbs/models/users' 配置验证策略 koa-passport默认使用 username 和 password 做验证 passport . use ( new LocalStrategy ( async function ( username , password , done ) { let where = { username } ; //在数据库中寻找输入的用户信息 let result = await UserModel . findOne ( where ) if ( result != null ) { if ( result .

java学习(十)

三世轮回 提交于 2020-02-02 10:03:44
1、grep命令 查找文件file.log中“passport”字段 grep “passport” file.log 查找文件file.log中“passport”字段,并且统计出出现次数 grep “passport” file.log |wc –l 或者 grep “passport” file.log –c 2、awk命令 假设我们现在有一个文件,里边内容有三行 去掉第一列 cat test.txt 1,2,3 2,3,4 5,6 awk -F "," '{print $2, $3}' test.txt 2,3 3,4 6 对第一列求和 awk '{a+=$1}END{print a}' test.txt 8 去掉列数不为3的列 awk -F "," '{if(NF==3){print $0}}' test.txt 1,2,3 2,3,4 3、top和ps命令:探测进程 ps命令 ,默认只会显示运行在当前控制台下的属于当前用户的进程。 ps –A和ps –e可以显示所有进程 ps -ef 显示完整格式的所有进程 指定进程名,ps -ef | grep“java”找出进程名中包括java的所有进程 top命令 ,可以实时监测进程,输出的第一部分是显示系统的概括。 ps和top命令的区别: ps看到的是命令执行瞬间的进程信息,而top可以持续的监视。 ps只是查看进程

实战精髓,项目级登录鉴权方案及权限跳转【Node vs Vue】

两盒软妹~` 提交于 2020-01-29 00:18:16
前言 不管是企业项目,还是个人项目,一个优秀的系统必须具有鉴权的能力,何为 鉴权 ,是指验证用户是否拥有访问系统的权利。 前端鉴权的方式也很多,例如 HTTP Basic Authentication 、 session-cookie 、 OAuth(开放授权) 、 JWT ··· 本章通过 node.js vue 为框架,模拟出一套较为完整的前后端配合鉴权方案(采用 JWT 鉴权理念) ❗ PS:本章对基本知识不会有过多讲解,主要对涉及技术的应用进行代码演示 需求分析 登录成功时,后端返回 Token 值 token 必须带有时效性,过期则无效 前端调用接口时,需要携带上 token 才能访问 前端在跳转需要权限的页面时,需要判断当前是否已经登录,以及是否登录过期 技术栈 Vue、Node.js 作为前后端开发框架 axios 作为请求接口的HTTP库 express 作为接口开发的框架 Node.js涉及库 body-parser - 处理POST数据 bcrypt - 密码加密以及解密匹配 jwt jsonwebtoken - 生成token passport、passport-jwt - 解析token jwt-decode - 前端解析token以token获取有效时间 mongoose 连接Mongo数据库 Node.js 后台开发 初始化Express

12306自动刷票下单-登录篇

眉间皱痕 提交于 2020-01-24 20:27:05
12306网站推出图片验证码以后,对于抢票软件就提出了更高的要求,本篇并不涉及自动识别验证码登录(主要是博主能力所限),提供一个途径- 打码平台 ,这个几乎是可以破解所有验证码了,本篇主要是分享一下12306网站登录的流程的学习,勿吐槽,有问题请指正,博主也是刚开始接触爬虫,大家共勉共勉。 废话不多说了,直接干吧 首先打开12306登录页面https://kyfw.12306.cn/otn/login/init 输入账号密码直接登录,会转入到下面的页面https://kyfw.12306.cn/otn/index/initMy12306 红线划掉的就是用户名,那么我们最终就是要访问这个网页查找到我们的用户名,简单吧 好了,不闹了,看一下我们整个登录过程中的请求吧 这里缺少了打开登录页面的请求,如果你没有发现,那我刚说了你就应该发现,这个登录页面是必须的,这里说一下我的理解,登录过程中我们是要发送验证码的,验证码作为独立的请求发送,那么服务器是要知道这个验证码是由张三发过来的还是由李四发过来的,所以当我们打开登录页面的时候,服务器会记录session或者cookie,我们之后的请求都通过携带cookie让服务器知道是我张三发送的请求,而不是李四。大概就是这么回事,可能说的不太对,我也就理解了这么点,见谅见谅。 这里我们使用requests库,不要太方便 import requests