token

记一次业余项目的敏捷开发实践

末鹿安然 提交于 2020-03-15 20:48:20
本次是在原有ApiTemplate项目之上,增加一个用户登录权限控制模块,用于验证ApiTemplate项目在面对一些简单问题时,如何抽象并支持未来的扩展。用户登录权限控制模块看上去很简单,但由于业余时间总是有限的。所以借助此机会实践一次用户敏捷开发。首先拆分模块,本次只实现用户登录和登出。 apitemplate项目地址: https://github.com/cqhaibin/ApiTemplate 一、总结放前面 最小化任务范围 本次任务只限定在了《用户名+密码登录》这个任务上,并且不包含数据的持久化, 这样在做的时候反复考查自己,不让自己超出范围。所以 查询用户注册信息、在线用户存储相关接口只做定义和模拟实现,不做具体的存储实现 考虑到业务逻辑是稳定的,而存储是可变的,所以数据库实体对象与业务实体对象分离 给任务一个期限 像本次就只列出了任务的期限,而没有列出每个子阶段的期限,如:一个需求必须要经过需求分析、模块设计、代码实现等阶段。这些子阶段也需要给出具体的期限。 从外向里逐层推进 定义UI/服务层接口 因为UI接口有多种提供方式(如:rest api, rpc等),所以基本以服务层接口为标准,UI接口层只是做了一次简单转换和调用。其中UI/服务层接口输入/输出参数的Moddel也随之定义(两层共享Model) 实现服务层接口 此步实现服务层接口

本地会员与新浪微博api绑定和同步登陆

ⅰ亾dé卋堺 提交于 2020-03-15 02:50:39
说明:此设计仅为我个人简单的制作。没有考虑安全因素、bug、效率等。仅限于学习本地会员同步新浪微博登陆。 附:伸手党可到csdn资源下载源码。包含源码文件、数据库文件以及使用方法 csdn资源下载网址:http://download.csdn.net/detail/x171306523c/4957607 1、先设计了一个简单的mysql数据库表 CREATE TABLE IF NOT EXISTS `user2` ( `id` int(5) NOT NULL AUTO_INCREMENT, `api` int(1) NOT NULL DEFAULT '0', `username` varchar(128) NOT NULL, `passwd` varchar(32) NOT NULL, `access_token` varchar(32) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; id为主键,不用说了 api记录是不是微博用户以及时哪个微博。比如规定api=0不是微博用户。api=1新浪微博用户。api=2腾讯微博。api=3 QQ账号 username用户名 passwd密码 access

Auth认证

前提是你 提交于 2020-03-14 09:45:31
认证源码分析 #1、APIAPIView #进来 #2、APIAPIView类中有很多方法,找到dispatch方法 ,请求来了肯定要走dispatch def dispatch(self, request, *args, **kwargs): request = self.initialize_request(request, *args, **kwargs) #request已经变了 self.initial(request, *args, **kwargs) #这个request是包装后的 #3、来到initial方法、权限、频率等都在该方法中 def initial(self, request, *args, **kwargs): #包装后的request self.perform_authentication(request) #认证 self.check_permissions(request) self.check_throttles(request) #4、来到perform_authentication, def perform_authentication(self, request): request.user #此时就要去包装后的request中找user #---------------------------------

jmeter关联的常用方法(关联token)

南楼画角 提交于 2020-03-13 23:02:24
1. JMeter-关联 1.1为什么要使用关联 为什么要进行关联: 对系统进行操作时,本次的操作或下一次的操作提交的请求里面的参数需要用到服务器返回动态变化的值,首先这个值是动态变化的,其次这个值是服务器动态返回的并且会对请求结果产生影响 比如: 用户登录后,token信息都不同,有些操作要使用token,就需要将这个动态的信息保存下来。 还有经常遇到的场景,第二个请求提交的参数要从第一个请求的返回数据中获取。 什么时候需要在jmeter中使用关联: 1. 服务器返回的动态变化而且对业务有影响的需要关联。 2. 回放脚本看是否正确,检查下脚本,是否有动态数据影响 3. 一大串字符串,每次请求参数是否有变化 Jmeter关联参数的选择来源与从这个接口响应的地方 常用的关联的两种方法:正则表达式提取和Json Extractor提取器 1.2JMeter关联-正则表达式 首先在测试计划(TestPlan)下面线程组,然后在线程组添加http请求(HTTP Sampler)和查看结果树(还可以添加一个Debug Sampler查看提取的值),填写请求里的信息   2.添加正则表达式提取器 提取那个请求返回的值,就在那个请求的下面添加提取器,提取器要放在请求的下面   3.配置填写正则表达式的内容 正则表达式一栏,填写的内容就是请求返回的参数里面想要提取值的地方,用(.*?

配置kubectl客户端通过token方式访问kube-apiserver

痞子三分冷 提交于 2020-03-13 17:35:53
使用的变量 本文档用到的变量定义如下: $ export MASTER_IP=XX.XX.XX.XX # 替换为 kubernetes master VIP $ export KUBE_APISERVER="https://${MASTER_IP}:6443" $ 创建 kubectl config 文件 $ # 设置集群参数 $ kubectl config set-cluster kubernetes \ --insecure-skip-tls-verify=true \ --server=${KUBE_APISERVER} $ # 设置客户端认证参数 $ kubectl config set-credentials crd-admin \ --token=7176d48e4e66ddb3557a82f2dd316a93 $ # 设置上下文参数 $ kubectl config set-context kubernetes \ --cluster=kubernetes \ --user=crd-admin \ --namespace=crd $ # 设置默认上下文 $ kubectl config use-context kubernetes 使用命令 www.97yingyuan.org head -c 16 /dev/urandom | od -An -t x | tr

一问带你区分清楚Authentication,Authorization以及Cookie、Session、Token

ⅰ亾dé卋堺 提交于 2020-03-12 12:18:41
1. 认证 (Authentication) 和授权 (Authorization)的区别是什么?   这是一个绝大多数人都会混淆的问题。首先先从读音上来认识这两个名词,很多人都会把它俩的读音搞混,所以我建议你先先去查一查这两个单词到底该怎么读,他们的具体含义是什么。 说简单点就是: 认证 (Authentication): 你是谁。 授权 (Authorization): 你有权限干什么。 稍微正式点(啰嗦点)的说法就是: Authentication(认证) 是验证您的身份的凭据(例如用户名/用户ID和密码),通过这个凭据,系统得以知道你就是你,也就是说系统存在你这个用户。所以,Authentication 被称为身份/用户验证。 Authorization(授权) 发生在 Authentication(认证) 之后。授权嘛,光看意思大家应该就明白,它主要掌管我们访问系统的权限。比如有些特定资源只能具有特定权限的人才能访问比如admin,有些对系统资源操作比如删除、添加、更新只能特定人才具有。 这两个一般在我们的系统中被结合在一起使用,目的就是为了保护我们系统的安全性。 2. 什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ? 2.1 什么是Cookie ? Cookie的作用是什么?   Cookie 和

Blazor WebAssembly中的防止跨站点请求伪造 (XSRF/CSRF) 攻击

北城余情 提交于 2020-03-12 11:13:23
  这里以Asp.net Core的服务端并且Asp.net Core托管客户端为例,跨域请求的参考其他跨域设置。   在Asp.net Core中,XSRF/CSRF是通过验证http头或form表单中的字段来验证请求的。   在Asp.net Core的Startup中注入如下服务以启用防止跨站点请求伪造 (XSRF/CSRF) 攻击 services.AddAntiforgery(options =>{ options.HeaderName = "X-CSRF-TOKEN-HEADER"; options.FormFieldName = "X-CSRF-TOKEN-FORM"; });   启用如下中间件以在Cookie中写入令牌 app.Use(next=>context=> { var tokens = antiforgery.GetAndStoreTokens(context); context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken,new CookieOptions() {HttpOnly=false }); return next(context); });   在Blazor WebAssembly 客户端中注入JSRuntime用于通过js读取Cookie @inject

JWT-JAVA简单测试用例

和自甴很熟 提交于 2020-03-12 09:04:29
package com.ht.web.util; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.exceptions.JWTCreationException; import com.auth0.jwt.exceptions.JWTVerificationException; import com.auth0.jwt.interfaces.DecodedJWT; import java.util.Date; public class JwtDemo { public static void main(String[] main) { try { //创建加密算法 Algorithm algorithm = Algorithm.HMAC256("secret"); String token = JWT.create() //签发者 .withIssuer("auth0") //自定义KV .withClaim("admin", "jack") //过期时间,必须大于签发时间 .withExpiresAt(new Date()) //生效时间,定义在什么时间之前,该Token都是不可用的

使用微信JS-SDK调用微信浏览器的接口

自作多情 提交于 2020-03-12 01:57:03
先附上微信公众平台的相关链接: 微信公众平台: https://mp.weixin.qq.com/ 微信公众平台开发文档: https://mp.weixin.qq.com/wiki 微信公众平台JS-SDK开发文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN 阅读文档可知,基本流程如下: 1.绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 2.引入JS文件 在需要调用JS接口的页面引入如下JS文件 http(s)://res.wx.qq.com/open/js/jweixin-1.0.0.js 如需使用摇一摇周边功能,请引入 http://res.wx.qq.com/open/js/jweixin-1.1.0.js 3.通过config接口注入权限验证配置 wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填

(1)k8s集群部署

会有一股神秘感。 提交于 2020-03-12 01:51:24
K8S介绍: 官方文档: https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/ (1)添加阿里docker 源 shell> wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo (2)安装docker shell>yum -y install docker-ce shell>docker -v shell> systemctl enable docker shell>systemctl start docker (3)安装kubernetes,增加源 shell> cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl= https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey= https://mirrors.aliyun.com/kubernetes/yum/doc