token

vue下axios拦截器token刷新机制

让人想犯罪 __ 提交于 2020-01-17 13:28:12
//创建http.js文件,以下是具体代码://引入安装的axios插件 import axios from 'axios' import router from '@/router'; import Vue from 'vue' const qs = require("qs"); let _this = new Vue(); let isLock = false; let refreshSubscribers = []; //判断token是否过期 function isTokenExpired(token) { let expires_time = JSON.parse(token).expires_time; let curentTime = new Date().getTime(); if (curentTime >= expires_time) { return true; } else { return false; } } //获取Token对象 function getToken() { return localStorage.getItem("token"); } //push所有请求到数组中 function subscribeTokenRefresh(cb) { refreshSubscribers.push(cb) } //刷新请求

【知识库】-通俗理解OAuth2.0协议用于第三方登陆

巧了我就是萌 提交于 2020-01-17 13:02:46
   转载:     OAuth 2.0 的一个简单解释  作者:阮一峰   传送门     OAuth 2.0 的四种方式  作者:阮一峰   传送门 OAuth 2.0 的一个简单解释     OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。   这个标准比较抽象,使用了很多术语,初学者不容易理解。其实说起来并不复杂,下面我就通过一个简单的类比,帮助大家轻松理解,OAuth 2.0 到底是什么。 我住在一个大型的居民小区。 小区有门禁系统。 进入的时候需要输入密码。 我经常网购和外卖,每天都有快递员来送货。我必须找到一个办法,让快递员通过门禁系统,进入小区。 如果我把自己的密码,告诉快递员,他就拥有了与我同样的权限,这样好像不太合适。万一我想取消他进入小区的权力,也很麻烦,我自己的密码也得跟着改了,还得通知其他的快递员。 有没有一种办法,让快递员能够自由进入小区,又不必知道小区居民的密码,而且他的唯一权限就是送货,其他需要密码的场合,他都没有权限? 一、快递员问题 于是,我设计了一套授权机制。 第一步,门禁系统的密码输入器下面,增加一个按钮,叫做"获取授权"。快递员需要首先按这个按钮,去申请授权。 第二步,他按下按钮以后,屋主(也就是我)的手机就会跳出对话框:有人正在要求授权。系统还会显示该快递员的姓名、工号和所属的快递公司。 我确认请求属实

微信api access_token报错

蹲街弑〆低调 提交于 2020-01-17 12:03:40
授权和调用接口报access_token错 有可能是因为access_token不是最新的,在授权的时候就需要把token存缓存或者数据库 如果是签名错误,先用微信签名调试工具测试,如果没有问题,那就查看url是否携带了参数,url?code=xxx&a=xxx,需要把url编码一次,php使用 urlencode再提交就可以了 来源: CSDN 作者: Mitsubishi_Lancer 链接: https://blog.csdn.net/lorraine_40t/article/details/104014812

Flask + PyJWT 实现基于Json Web Token的用户认证授权

让人想犯罪 __ 提交于 2020-01-17 01:46:00
这是我在做用户认证开发过程中看到一位大神写的文章,不过源地址已经失效了,希望有可能未来还能看到 传送门 。在此转载是不忍心这么好的文章绝版 我在 github 上找到了作者的源码,有需要的可以去下载 https://github.com/yaoyonstudio/flask-pyjwt-auth 在程序开发中,用户认证授权是一个绕不过的重难点。以前的开发模式下,cookie和session认证是主流,随着前后端分离的趋势,基于Token的认证方式成为主流,而JWT是基于Token认证方式的一种机制,是实现单点登录认证的一种有效方法。 PyJWT是一个用来编码和解码JWT(JSON Web Tokens)的Python库,也可以用在Flask上。本文就通过一个实例来演示Flask项目整合PyJWT来实现基于Token的用户认证授权。 一、需求 1、程序将实现一个用户注册、登录和获取用户信息的功能 2、用户注册时输入用户名(username)、邮箱(email)和密码(password),用户名和邮箱是唯一的,如果数据库中已有则会注册失败;用户注册成功后返回用户的信息。 3、用户使用用户名(username)和密码(password)登录,登录成功时返回token,每次登录都会更新一次token。 4、用户要获取用户信息,需要在请求Header中传入验证参数和token

Session 、Cookie和token

社会主义新天地 提交于 2020-01-16 20:07:22
Session 、Cookie和token 一、session 保存在服务端,可以用于记录客户状态; 比如我们经常会用 Session 保存客户的基本信息、权限信息等;用户第一次登录之后,服务器就会创建一个 Session ,并将 SessionID 返回给浏览器,浏览器通常将其写入到 Cookie 中,这种 Cookie 也叫做 SessionCookie ,浏览器再次访问时,只需要拿着 SessionID 从服务端查找 Session 就可以了。 另外,这个 SessionID 不一定非要保存到 Cookie 中,只是对于浏览器客户端,大家的默认做法是放在 Cookie 中。 二、cookie 是在客户端(浏览器)保存用户信息的一种机制;Cookie 由服务器生成,发送给浏览器,然后浏览器把 Cookie 以键值对的形式保存在客户端的某个目录下面;每种浏览器存储大小会有一些差异,一般不超过 4KB; 当下一次请求的时候,会把 Cookie 发送给服务端,服务端对 Cookie 中的信息解析并验证身份。 比如你入职一个公司,会给你办一张工卡,上面有你的姓名、工号、部门等信息,你进入职场的时候,拿着工卡就可以进出。 但是 Cookie 是不可以跨域名使用的;就好像我拿着我们公司的工卡,去你们公司,保安肯定是不会放我进去的。 三、cookie和session的区别 关于 Cookie

微信公众号开发基本流程

人盡茶涼 提交于 2020-01-16 18:31:23
背景: 过年前后做了个微信公众号项目,已经过去一段时间了,抽空回忆总结下基本流程吧,不然很快估计自己就忘了。。 微信公众平台官网: https://mp.weixin.qq.com 一、注册公众号 首先注册时可以看到公众号有三种类型,个人用户大多数选择 订阅号 ,而企业用户一般选择 服务号 和 企业号 。 我们平常大多数关注的都是 订阅号 ,他们统一都放置在微信应用的订阅号消息列表中,没有微信支付等高级功能,只是用于发布文章等基础功能。 而服务号和企业号都在会话列表,和我们的微信好友是同级别的位置,具备微信支付等高级功能,一般是某个企业品牌的对外操作窗口,如海底捞火锅、顺丰速运等。 我们前期开发测试只需要 注册个人订阅号 即可,真正开发使用的是开发者工具里的测试号,具体下面会说。 真正生产的话,使用的都是经过微信认证的订阅号、服务号、企业号。 二、了解公众号管理页面 我们在微信公众平台扫码登录后可以发现管理页面左侧菜单栏有丰富的功能: 大概可以分为这几大模块: 首页、功能、小程序、管理、推广、统计、设置、开发 作为开发人员,首先应该关注的是设置、开发模块;而作为产品运营人员,关注的是功能、管理、推广模块;作为数据分析人员,关注的是统计模块。 首先我们不妨各个功能模块都点击看一看,大概了解下我们能做些什么。可以确认的是,这个微信公众平台当然不只是给开发人员使用的

sql json 转成表格

随声附和 提交于 2020-01-16 16:16:55
ALTER FUNCTION [dbo].[parseJSON]( @JSON NVARCHAR(MAX)) RETURNS @hierarchy TABLE ( element_id INT IDENTITY(1, 1) NOT NULL, /* internal surrogate primary key gives the order of parsing and the list order */ sequenceNo [int] NULL, /* the place in the sequence for the element */ parent_ID INT,/* if the element has a parent then it is in this column. The document is the ultimate parent, so you can get the structure from recursing from the document */ Object_ID INT,/* each list or object has an object id. This ties all elements to a parent. Lists are treated as objects here */ NAME NVARCHAR(2000),/*

Uncaught SyntaxError: Unexpected token o in JSON at position 1

最后都变了- 提交于 2020-01-16 16:16:43
JSON.parse(str);方法执行时提示的错误; 解决方法很简单,只要注意str参数的格式就可以了,必须为标准的JSON字符串格式 var str = '[{"code": "name", "name": "name"},{"code": "name1", "name": "name1"}]'; 如果这个str的值是通过后台传递过来的,一定要注意确认是不是传递的对象,或者格式是否正确 来源: https://www.cnblogs.com/rangzhi/p/12201476.html

PHP开发APP接口

≯℡__Kan透↙ 提交于 2020-01-16 16:09:44
新词:鉴权;JWT 第1章 课程简介 课程内容 介绍什么是APP接口 详细介绍一个APP接口包含哪些关键模块(重难点) 介绍一个API实例 课程目标 了解APP接口的关键模块 学会构建一个APP接口的项目 开发环境(LNMP) PHP框架: Laravel 操作系统: MacOs Web服务器: Nginx APP接口介绍 什么是APP接口: 客户端与服务器端数据的交换 大部分APP接口是通过HTTP协议通信的 HTTP通信三要素: URL通信地址,Method通信方式,Params通信内容 第2章 客户端参数传递(APP接口的输入) 客户端如何传递参数 URL模式即GET RequestBody即POST post-form-url方式: RequestHeaders中Content-Type: application/x-www-form-urlencoded post-form-data方式: RequestHeaders中Content-Type: multipart/form-data;boundary=----WebKitFormBoundaryaUSyUoLPtL4bSqEk post-json方式: RequestHeaders中Content-Type: application/json;charset=UTF-8 服务端如何获取参数 get方式使用$_GET

Spring Cloud进阶之路 | 八:授权服务(Spring Cloud Oauth2)

☆樱花仙子☆ 提交于 2020-01-16 15:40:11
​转载请注明作者及出处: 作者:银河架构师 原文链接: https://blog.csdn.net/liuminglei1987/article/details/104004034 oauth2简介 OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。 OAuth 2 定义了四种 Grant Type,授权码模式(authorization code)、简化模式(implicit)、密码模式(Password)、客户端模式(client credentials),每一种都有适用的应用场景。 运行流程如下所示: 至于每种模式如何运行,需要什么参数,本文不再赘述,大家可自行查阅相关资料,做到烂熟于心。 微服务安全策略 在传统单体Web应用架构中,身份认证从来都不是问题,通过Spring Security或者Shiro,配合session,可以很方便的解决身份认证和鉴权的问题。 随着不断扩大的业务需求,在传统单体架构捉襟见肘的时候,分布式架构应运而生, 分布式架构强调的是服务化以及服务的分散化, 大大地提升了系统的可靠性和响应速度。 可是,技术并没有因此而停滞不前,微服务架构又出现了。 微服务架构更强调服务的专业化、精细化, 更加强调单一职责、轻量级通信(HTTP)