当前位置: 首页 > news >正文

网站建设与管理题目wordpress添加磁力下载

网站建设与管理题目,wordpress添加磁力下载,美容北京公司网站建设,装饰网站建设重要性最近的工作是开发一个分布式的服务系统#xff0c;选用的环境是node开发环境#xff0c;由于需要全面的进行异步开发所以使用Koa框架#xff0c;开发Web服务需要对用户进行身份认证#xff0c;所以就使用koa-jwt#xff0c;为什么使用token这种方式网上有很多介绍token和s… 最近的工作是开发一个分布式的服务系统选用的环境是node开发环境由于需要全面的进行异步开发所以使用Koa框架开发Web服务需要对用户进行身份认证所以就使用koa-jwt为什么使用token这种方式网上有很多介绍token和session的区别我这里就不再赘述了。在给大家演示代码之前我在这一章主要是介绍koa-jwt的工作流程在后面的一章中我将使用程序对大家进行演示。首先我在这附上koa-jwt的源代码然后为大家剖析其的工作流程。源程序koa-jwt的源程序的主程序在lib/index.js中use strict;const pAny require(p-any);const unless require(koa-unless);const verify require(./verify);const getSecret require(./get-secret);const resolveAuthHeader require(./resolvers/auth-header);const resolveCookies require(./resolvers/cookie);module.exports (opts {}) { const { debug, getToken, isRevoked, key user, passthrough, tokenKey } opts; const tokenResolvers [resolveCookies, resolveAuthHeader]; if (getToken typeof getToken function) { tokenResolvers.unshift(getToken); } const middleware async function jwt(ctx, next) { let token; tokenResolvers.find(resolver token resolver(ctx, opts)); if (!token !passthrough) { ctx.throw(401, debug ? Token not found : Authentication Error); } let { state: { secret opts.secret } } ctx; try { if (typeof secret function) { secret await getSecret(secret, token); } if (!secret) { throw new Error(Secret not provided); } let secrets Array.isArray(secret) ? secret : [secret]; const decodedTokens secrets.map(async s await verify(token, s, opts)); const decodedToken await pAny(decodedTokens) .catch(function (err) { if (err instanceof pAny.AggregateError) { for (const e of err) { throw e; } } else { throw err; } }); if (isRevoked) { const tokenRevoked await isRevoked(ctx, decodedToken, token); if (tokenRevoked) { throw new Error(Token revoked); } } ctx.state[key] decodedToken; if (tokenKey) { ctx.state[tokenKey] token; } } catch (e) { if (!passthrough) { const msg debug ? e.message : Authentication Error; ctx.throw(401, msg, { originalError: e }); }else{ ctx.state.jwtOriginalError e; } } return next(); }; middleware.unless unless; return middleware;};2可配置参数koa-jwt的可配置参数有debug,getToken,isRevoked,keypassthroughtokenKeysecretcookie2.1debug参数 debug参数数据类型应该是Boolean类型用于表示是否处于调试状态如果不是处于调试状态返回的错误参数为Authentication Error如果处于调试状态将会返回具体的错误原因。2.2getToken参数 getToken参数数据类型应该是函数类型为用户自定义的获取请求token的函数如果没有定义此参数将会从请求头的authorization字段或者是cookie中的指定字段获取token。2.3isRevoked参数 isRevoked参数的数据类型为函数类型为用户自定义的token是否失效的函数如果没有定义此参数将不进行token失效处理。2.4key参数 key参数的数据类型应该是string类型将属性名为key的属性设置到ctx.state对象中同时其属性值为解密的token的值默认值为user。2.5passthrough参数 passthrough参数的数据类型应该是Boolean类型此参数用于对身份认证出现错误的时候是否直接抛出错误如果此参数的值为真在身份认证过程中将不会直接抛出错误而是继续执行后面的程序如果此参数值为假江湖在出现错误的地方将错误抛出。2.6tokenKey参数 tokenKey参数的数据类型应该为string类型其作用与key的作用类型将属性名为tokenKey的属性设置到ctx.state对象中同时其属性值为获取token的方法。默认此参数为undefined。2.7secret参数 secret参数的数据类型为函数类型返回值为字符串类型或者直接是字符串类型如果没有定义此参数将会报错所以此属性为必要参数。此参数的作用是解密的秘钥。2.8cookie参数 cookie参数的数据类型应该是字符串类型用于指定从cookie中获取token的指定的属性名称。3Koa-jwt的工作流程 Koa-jwt的工作流程如下图所示从源程序和流程图我们可以看到koa-jwt的处理过程为(1)获取用户的配置参数。(2)设置获取默认token的函数如果用户定义了getToken方法将此方法放在获取token方法数组的第一位。(3)调用获取token方法数组中的方法直到获取到token或者是遍历完数组。(4)判断是否获取到token如果获取到执行后面的过程如果没有获取到抛出错误。(5)判断secret的类型是否是函数如果是函数调用此函数存入的值为头部数据和载荷数据返回字符串型的秘钥。(6)判断秘钥是否为真对于为真的执行后面的参数对于不为真的抛出错误。(7)根据秘钥判断token是否正确对于token正确的执行后面的过程对于token不正确的抛出错误。(8)根据是否定义失效处理函数如果定义失效处理函数对此token进行失效判断如果失效抛出错误对于未失效继续处理后面的内容。(9)根据定义key参数设置ctx.state的key属性的值为获取的解密的token(10)根据用户是否定义tokenKey设置ctx.state的tokenKey属性的值为获取token的函数。(11)执行后面的组件
http://wiki.neutronadmin.com/news/412230/

相关文章:

  • 个人网站的设计流程珠海网站制作公司
  • 做电影网站步骤需要证书的建筑公司网站
  • 国际网站设计低代码平台开发
  • html语言中文解释大全 | 网站建设 - 红黑联盟论坛短视频项目计划书怎么写
  • 网站建设的行业分析微信里面的小程序
  • 建设银行手机不用了怎么登陆网站wordpress 4.2.5
  • 上海专业高端网站建设服务器购物网站可行性分析报告
  • 郓城网站建设价格win10 wordpress安装教程
  • 网站seo优化推广教程闵行网络推广公司
  • 网站设计及开发图片wordpress博客
  • 商河网站建设公司建筑网站汇总
  • 深圳 做网站合肥建设集团信息网站
  • wordpress建站页面开发高端客户
  • 不用服务器做网站上海网站seo公司
  • 做购物网站哪种服务器好莱芜新闻民生广角
  • 榆林网站开发wordpress字不能
  • 手机网站建设的教程视频教程百度竞价渠道户
  • 网站下面的站长统计很逗seo整站优化吧
  • 上海市建设监理协会网站做dj网站
  • 上海短期网站建设培训我的wordpress不显示图片
  • 如何拷贝服务器里面网站做备份ui设计定义
  • 郑州做网站找哪家网站新闻发布后前台不显示
  • 印刷设计东莞网站建设免费网站推广网址
  • 怎么注册自己的网站wordpress小游戏主题
  • 关于数据机房建设的网站销售平台网站建设
  • 长沙民政计算机网站建设大气企业响应式网站
  • 荣耀商城官网网站广州网页设计机
  • 网页设计网站简单静态模板深圳网页制作模板
  • 华为弹性云做网站专门做女性产品的网站
  • 网站改版的宣传词奢侈品网站建设方案