导航:首页 > 去中心化 > jwt去中心化

jwt去中心化

发布时间:2023-09-24 15:17:32

『壹』 【知识总结】4.微服务的治理去中心化,服务发现,安全,部署

通常“治理”的意思是构建方案,并且迫使人们通过努力达到组织的目标。SOA治理指导开发者开发可重用的服务,以及随着时间推移,服务应该怎么被设计和开发。治理建立了服务提供者和消费者之间对于服务的协定,告诉消费者能从服务提供获取到什么样的支持。

SOA中有两种常见的治理:

那么微服务中的治理是什么意思呢?

在微服务架构中,不同的微服务之间相互独立,并且基于不同的平台和技术。因此,没有必要为服务的设计和开发定义一个通用的标准。

总结微服务的治理去中心化如下:

微服务架构下,有大量的微服务需要处理。由于微服务的快速和敏捷研发,他们的位置可能会动态变化。因此在运行时需要能够发现服务所在的位置,服务发现可以解决这个问题。

注册中心有微服务的实例和位置信息,微服务在启动时向注册中心注册自己的信息,关闭时注销。其它使用者能够通过注册中心找到可用的微服务和相关信息。

为了能找到可用的服务和他们的位置信息,需要服务发现机制。有两种发现机制,客户端发现和服务端发现。

客户端发现 - 客户端或者API网关通过查询服务注册中心或者服务的位置信息。

客户端/API网关必须调用服务注册中心组件,实现服务发现的逻辑。

服务端发现 - 客户端/API网关把请求发送到已知位置信息的组件(比如负载均衡器)。组件去访问注册中心,找到微服务的位置信息。

类似Kubernetes( http://kubernetes.io/v1.1/docs/user-guide/services.html )这种微服务部署解决方案,就提供了服务器端的自动发现机制。

微服务的部署方式也特别重要,以下是关键:

Docker(一个运行在linux上并且开源的应用,能够协助开发和运维把应用运行在容器中)能够快速部署微服务,包括关键几点:

相对于传统的虚拟机模式,利用docker容器,构建、发布、启动微服务将会变得十分快捷。

通过Kubernetes能够进一步扩展Docker的能力,能够从单个linux主机扩展到linux集群,支持多主机,管理容器位置,服务发现,多实例。都是微服务需求的重要特性。因此,利用Kubernetes管理微服务和容器的发布,是一个非常有力的方案。

图11,展示了零售应用的微服务部署。每个服务都在独立的容器中,每个主机有两个容器,通过kubernetes可以随意调整容器的数量。

在实际运行环境中,微服务的安全也非常重要。我们先看下单体架构下安全是如何实现的。

一个典型的单体应用,安全问题主要是“谁调用”,“调用者能做什么”,“如何处理”。服务器接收到请求后,一般都在处理链条的最开始,通过安全组件来对请求的信息进行安全处理。

我们能直接把这种处理方式应用在微服务架构中吗?答案是可以的,需要每个微服务都实现一个安全组件从资源中心获取对应的用户信息,实现安全控制。这是比较初级的处理方式。可以尝试采用一些标准的API方式,比如OAuth2和OpenID。深入研究之前,可以先概括下这两种安全协议以及如何使用。

OAuth2-是一个访问委托协议。需要获得权限的客户端,向授权服务申请一个访问令牌。访问令牌没有任何关于用户/客户端的信息,仅仅是一个给授权服务器使用的用户引用信息。因此,这个“引用的令牌”也没有安全问题。

OpenID类似于OAuth,不过除了访问令牌以外,授权服务器还会颁发一个ID令牌,包含用户信息。通常由授权服务器以JWT(JSON Web Token)的方式实现。通过这种方式确保客户和服务器端的互信。JWT令牌是一种“有内容的令牌”,包含用户的身份信息,在公共环境中使用不安全。

现在我们看下如何在网络零售网站中应用这些协议保障微服务的安全。

图12中所示,是实现微服务安全的关键几步:

JWT包含必要的用户信息,如果每个微服务都能够解析JWT,那么你的系统中每个服务都能处理身份相关的业务。在每个微服务中,可以有一个处理JWT的轻量级的组件。

在微服务中怎么支持事务呢?事实上,跨多个微服务的分布式事务支持非常复杂,微服务的设计思路是尽量避免多个服务之间的事务操作。

解决办法是微服务的设计需要遵循功能自包含和单职责原则。跨越多个微服务支持分布式事务在微服务架构中不是一个好的设计思路,通常需要重新划定微服务的职责。某些场景下,必须要跨越服务支持分布式事务,可以在每个微服务内部利用“组合操作”。

最关键的事情是,基于单职责原则设计微服务,如果某个服务不能正常执行某些操作,那么这个服务是有问题的。那么上游的操作,都需要在各自的微服务中执行回滚操作。

微服务架构相比较单体的设计而言,引入了更多服务,在每个服务级别会增加发生错误的可能性。一个服务可能由于网络问题、底层资源等各种问题导致失败。某个服务的不可能不应该影响整个应用的崩溃。因此,微服务系统必须容错,甚至自动回复,对客户端无感知。

任何服务在任何时间都有可能出问题,监控系统需要能够发现问题,并且自动恢复。微服务环境下有不少常用的模式。

微服务中请求的失败率达到一定程度后,系统中的监控可以激活线路中断。当正常请求的数量恢复到一定程度后,再关闭线路中断的开关,使系统回复到正常状态。

这个模式可以避免不必要的资源消耗,请求的处理延迟会导致超时,借此可以把监控系统做的更完善。

一个应用会有很多微服务租车,单个微服务的失败不应该影响整个系统。防火墙模式强调服务直接的隔离性,微服务不会受到其它微服务失败的影响。

超时机制是在确定不会再有应答的情况下,主动放弃等待微服务的响应。这种超时应该是可配置的。

哪些情况下,如何使用这些模式呢?大多数情况,都应该在网关处理。当微服务不可用或者没有回复时,网关能够决定是否执行线路中断或者启动超时机制。防火墙机制同样重要,网关是所有请求的唯一入口,一个微服务的失败不应该影响到其它微服务。网关也是获得微服务状态、监控信息的中心。

我们已经讨论了微服务的架构和各种特性,以及如何应用在一个现代的IT系统中。同时也需要意识到,微服务不是解决所有问题的灵丹妙药。盲目追求流行的技术概念并不能解决掉企业IT系统的问题。

微服务有很多优势,但是仅靠微服务不能解决企业IT中的所有问题。例如,微服务需要去除ESB,但是现实的IT系统中,大量的应用和服务是基于ESB而不是微服务。集成现有的系统,需要一些集成总线。实际情况是,微服务和其它企业架构并存。

『贰』 鉴权授权

众所周知,web server是无状态的,也就是说服务器不知道用户在最后一次请求中做了什么,请求之间是相互独立的。客户信息仅来自每个请求携带的或由服务器本身保存的公共信息,并且可以被所有请求使用。因此,为了跟踪用户请求的状态信息,比如网购的购物车历史,Cookie应运而生。

当服务器响应客户端的请求时,它会向客户端推送一个Cookie。这个Cookie记录了服务器上的一些信息。客户端在后续请求中携带这个Cookie,服务器可以根据这个Cookie判断请求的上下文。

Cookie的出现是从无国籍状态过渡到有国家状态的一种手段。

以登录为例,用户输入帐户名和密码,向服务器发送请求。服务器生成一个Cookie并发送给浏览器。浏览器将Cookie以k-v的形式保存在某个目录下的文本文件中,下次请求同一个网站时会将Cookie发送给服务器。服务器验证接收到的Cookie是否与服务器的Cookie一致;否则,验证失败。这是最初的想法。

img src=' https://P6 . toutiaoimg.com/large/PGC-image/48e 7b 24 ea 95 f 4 E0 CB 8d 940 DC 05 feb 1 EC '/

存储在浏览器中的Cookie的位置如下图所示。

img src=' https://p26 . toutiaoimg.com/large/PGC-image/b 35 b 701d 7 b 454 ada 95 a 49 a 36d 0026 a F9 '/

Cookie的原理决定了他具有以下特征:

在存储客户端,可以随意篡改,不安全。

它的内容会和http交互传输,会影响性能,所以Cookie能存储的数据庆哪不能太大,最多4kb。

一个浏览器只能为一个网站存储不超过20个cookie,而浏览器一般只允许300个cookie。

移动对Cookie支持不友好。

一般来说,存储的是纯文本,对象在存储之前需要序列化,解析需要反序列化。

还是以登录Cookie为例。例如,现在有两个二级域名,http://a.xxx.com(域名A)和3358b.xxx.com(域名B)。那么域名A的登录Cookie可以在域名B下使用吗?

默认情况下,域名A的服务主机中生成的Cookie只能由域名A的服务器获取,其他域名无法获取这个Cookie,只能是主机Cookie。

但是,服务器可以显式声明Cookie的域来定义它的域。比如域名A的登录Cookie的域设置为http://xxx.com(他们共同的顶级域名),path设置为'/',Set-Cookie:name=value;domain=xxx.comPath='/',那么域名B就可以读了。

在新规范rfc6265中,domain的值将忽略任何前导点,即子域中可以使用**xxx.com**和* * XXX.com * *。SSO(单点登录凳差核)也是根据这个原理实现的。

例如,现在有两个域名,a.b.e.f.com.cn(域名1)和c.d.e.f.com.cn(域名2)。域名2想读取域名1的Cookie。域名1可以声明哪些域?答案是e.ffcom.cn或者. f.com.cn,浏览器不能接受以domian为.com.cn的cookie,因为如果cookie域名可以设置为后缀的话,那就是峡谷大战了。

如果域名1设置了Set-Coo

kie:mykey=myvalue1;domain=e.f.com.cn;path=’/’

域名 2 设置Set-Cookie:mykey=myvalue2;domain=e.f.com.cn;path=’/’

那该域下 mykey 的值会被覆盖为 myvalue2,很好理解,同一个域下,Cookie 的 mykey 是唯一的。通常,我们要通过设置正确的 domain 和 path,减少不必要的数据传输,节省带宽。

随着交互式 Web 使用的兴起,Cookie 大小的限制以及浏览器对存储 Cookie 的数量限制,我们一定需要更强大的空间来储存大量的用户信息,比如我们这个网站是谁登录了,谁的购物车里加入了商品等等,服务器要保存千万甚至更多的用户的信息,Cookie 显然是不行的。枣掘那怎么办呢?

那将用户信息存储在哪呢?能否直接存在服务器中?

如果存在服务器中,1、这对服务器说是一个巨大的开销,严重的限制了服务器的扩展能力。2、假设 web 服务器做了负载均衡,用户 user1 通过机器 A 登入该系统,那么下一个请求如果被转发到另一台机器 B 上,机器 B 上是没有存该用户信息的,所以也找不到 sessionId,因此 sessionId 不应该存储在服务器上。这个时候redis/Memcached便出来解决该问题了,可以简单的理解它们为一个缓存数据库。

当我们把 sessionId 集中存储到一个独立的缓存服务器上,所有的机器根据 sessionId 到这个缓存系统里去获取用户信息和认证。那么问题就迎刃而解了。

根据其工作原理,你有没有发现这个方式会存在一个什么样的问题?那就是增加了单点登录失败的可能性,如果负责 session 的机器挂了, 那整个登录也就挂了。但是一般在项目里,负责 session 的机器也是有多台机器的集群进行负载均衡,增加可靠性。

思考:

假如服务器重启的话,用户信息会丢失吗?

Redis 等缓存服务器也是有个集群的,假设某一台服务重启了,会从其他运行的服务器中查找用户信息,那假设真的某一次所有服务器全都崩溃了,怎么办呢?大概的应对策略就是,存储在内存中的用户信息会定期刷到主机硬盘中以持久化数据,即便丢失,也只会丢失重启的那几分钟内的用户数据。

Cookie-session 局限性

依赖 Cookie,用户可以在浏览器端禁用 Cookie

不支持跨端兼容 app 等

业务系统不停的请求缓存服务器查找用户信息,使得内存开销增加,服务器压力过大

服务器是有状态的,如果是没有缓存服务器的方式,扩容就非常困难,需要在多台服务器中疯狂复制 sessionId

存在单点登录失败的可能性

单点登录(Single Sign On),简称为 SSO。随着企业的发展,一个大型系统里可能包含 n 多子系统,用户在操作不同的系统时,需要多次登录,很麻烦,单点登录就是用来解决这个问题的,在多个使用系统中,只需要登录一次,就可以访问其他相互信任的使用系统。

之前我们说过,单点登录是基于 cookie 同顶域共享的,那按照不同的情况可分为以下 3 种类型。

同一个站点下;

系统在相同的顶级域名下;

各子系统属于不同的顶级域名

一般情况下一个企业有一个顶级域名,前面讲过了,同一个站点和相同顶级域下的单点登录是利用了 Cookie 顶域共享的特性,相信大家已经明白这个流程,不再赘述。但如果是不同域呢?不同域之间 Cookie 是不共享的,怎么办?

这里我们就要说一说 CAS(中央认证服务 )流程了,这个流程是单点登录的标准流程。它借助一个单独的系统专门做认证用,以下成为SSO系统。

它的流程其实跟 Cookie-session 模式是一样的,单点登录等于说是每个子系统都拥有一套完整的 Cookie-session 模式,再加上一套 Cookie-session 模式的 SSO 系统。

用户访问系统 a,需登录的时候跳到 SSO 系统,在 SSO 系统里通过账号密码认证之后,SSO 的服务器端保存 session,,并生成一个 sessionId 返回给 SSO 的浏览器端,浏览器端写入 SSO 域下的 Cookie,并生成一个生成一个 ST,携带该 ST 传入系统 a,系统 a 用这个 ST 请求 SSO 系统做校验,校验成功后,系统 a 的服务器端将登录状态写入 session 并种下系统 a 域下的 Cookie。之后系统 a 再做登录验证的时候,就是同域下的认证了。

这时,用户访问系统 b,当跳到 SSO 里准备登录的时候发现 SSO 已经登录了,那 SSO 生成一个 ST,携带该 ST 传入系统 b,系统 b 用这个 ST 请求 SSO 系统做校验,校验成功后,系统 b 的服务器端将登录状态写入 session 并设置系统 b 域下的 Cookie。可以看得出,在这个流程里系统 b 就不需要再走登录了。

关于“跳到 SSO 里准备登录的时候发现 SSO 已经登录了”,这个是怎么做的呢,这就涉及 Oauth2 授权机制了,在这里就不展开讲,简单提个思路,就是在系统 b 向 SSO 系统跳转的时候让它从系统 a 跳转,携带系统 a 的会话信息跳到 SSO,再通过重定向回系统 b。

关于 Oauth2,可移步阮一峰 的《OAuth 2.0 的四种方式》。

我们已经分析过 Cookie-session 的局限性了,还有没有更彻底的解决办法呢?既然 SSO 认证系统的存在会增加单点失败的可能性,那我们是不是索性不要它?这就是去中心化的思路,即省去用来存储和校验用户信息的缓存服务器,以另外的方式在各自系统中进行校验。实现方式简单来说,就是把 session 的信息全部加密到 Cookie 里,发送给浏览器端,用 cpu 的计算能力来换取空间。

服务端不保存 sessionId,用户登录系统后,服务器给他下发一个令牌(token),下一次用户再次通过 Http 请求访问服务器的时候, 把这个 token 通过 Http header 或者 url 带过来进行校验。为了防止别人伪造,我们可以把数据加上一个只有自己才知道的密钥,做一个签名,把数据和这个签名一起作为 token 发送过去。这样我们就不用保存 token 了,因为发送给用户的令牌里,已经包含了用户信息。当用户再次请求过来的时候我用同样的算法和密钥对这个 token 中的数据进行加密,如果加密后的结果和 token 中的签名一致,那我们就可以进行鉴权,并且也能从中取得用户信息。

对于服务端来说,这样只负责生成 token , 然后验证 token ,不再需要额外的缓存服务器存储大量的 session,当面对访问量增加的情况,我们只需要针对访问需求大的服务器进行扩容就好了,比扩充整个用户中心的服务器更节省。

假如有人篡改了用户信息,但是由于密钥是不知道的,所以 token 中的签名和被篡改后客户端计算出来的签名肯定是不一致的,也会认证失败,所以不必担心安全问题。

关于 token 的时效性,是这样做的,首次登陆根据账号密码生成一个 token,之后的每次请求,服务端更新时间戳发送一个新的 token,客户端替换掉原来的 token。

jwt 模式的退出登录实际上是假的登录失效,因为只是浏览器端清除 token 形成的假象,假如用之前的 token 只要没过期仍然能够登陆成功

安全性依赖密钥,一旦密钥暴露完蛋

加密生成的数据比较长,相对来说占用了更大的流量

不依赖 Cookie,可跨端跨程序使用,支持移动设备

相对于没有单点登录的 cookie-session 模式来说非常好扩展

服务器保持了无状态特性,不需要将用户信息存在服务器或 Session 中

对于单点登录需要不停的向 SSO 站点发送验证请求的模式节省了大量请求

相关问答:

『叁』 基于ServiceMesh服务网格的去中心化微服务管控治理平台

首先说明下我最近在思考的一个产品规划,即基于ServiceMesh服务网格思路,参考开源的Istio等实现架构来搭建一个完整的微服务治理管控平台。

在前面文章里面我就提到了,在实施微服务架构后,由于微服务将传统的单体应用进行了拆分,颗粒度更细。因此整个集成的复杂度,后续的管控治理复杂度都急剧增加。

当前也出现了类似SpingCLoud主流的微服务开发框架,实现了服务注册和发现,安全,限流熔断,链路监控等各种能力。同时对于服务注册,限流,服务链监控等本身又出现了大量的开源组件,类似服务注册的Nacos,Consul,限流熔断的Sentinel,链接监控的SKyWalking等开源组件。

当我们在思考微服务开发框架和开源组件的时候你会发现。

在SpingCLoud外的各类开源组件本身和微服务开发过程是解耦的,也就是说这些开源组件更加方便地通过配置增加管控能力,或者通过下发一个SDK包或Agent代理组件来实现管控能力。以尽量减少对微服务开发过程的影响。

而对于SpingCLoud微服务框架,在使用中有一个最大的问题就是开发态和治理态的耦合,也就是说一个微服务模块在开发的时候,你会引入很多治理态的内容。类似限流熔断,类似链路监控等能力,都需要你在开发状态增加配置文件,或对接口实现类进行扩展等。

微服务开发本身应该是一个简单的事情。

其核心是实现业务功能和规则逻辑,并暴露轻量的Http Rest API接口实现和前端交互或者实现和其它微服务模块之间的横向交互协同。

也就是说如果不考虑管控治理层面的内容,你采用最小化的SpingBoot来进行微服务开发足够的,或者你仍然可以采用传统的Java架构进行微服务开发,只要确保最终暴露Http API接口即可。

但是如果要考虑治理的内容,你会发现会引入注册中心,限流熔断,安全,服务链监控一系列的管控治理组件,导致整个微服务开发过程,集成过程都复杂化。

因此构建微服务治理平台的初衷即:

在这里还是先简单梳理下业务需求和业务功能场景。

01 服务注册和服务发现

仍然需要实现最基本的当前微服务自注册,自发现能力。这个在开发阶段需要暴露的接口增加注解还是必须的。在ServiceMesh下,由于存在本地Sidecar代理,因此在本地代理和微服务一起容器化部署下去后,会扫描微服务中需要暴露的接口,并完成微服务和API接口服务的注册工作。 也就是传统的应用开发集成中,手工接口API接口服务注册和接入的过程没有了,这个过程应该彻底地自动化掉。

注意这里的注册不仅仅是到微服务粒度,而是可以到微服务API接口粒度。

因此我们需要实现在微服务部署和交付后,微服务注册和微服务中的API接口注册全部自动完成。在微服务集群扩展的时候,相关的注册信息和配置信息也自动更新和扩展。

一个微服务模块在部署和交付后。

进入到微服务治理平台就能够看到当前有哪些微服务已经注册,进入到单个微服务里面,就可以看到当前微服务究竟有哪些细粒度的API接口已经注册。

02 服务安全和双重管理

对于一个微服务暴露的API接口,可以看到部分API接口仅仅是提供给前端微服务使用,但是部分API接口是需要提供给其它横向的微服务模块使用。

一个是前端调用后端API接口,一个是后端各个微服务中心间接口交互。

在安全管理的时候实际需要对这两类API接口分别进行管理。如果仅仅是前端功能使用,那么类似JWT+Token的安全措施即可,同时对于的日志流量并不一定需要完全记录和入库。如果是横向微服务间调用,那么安全要求更高,需要支持Token,用户名密码,IP地址验证等多种安全管控要求。

对于前后端的使用,往往仅授权到微服务层级即可。但是对于横向微服务间调用,那么服务授权必须到API接口服务粒度, 能够针对单个微服务API接口独立授权和管理。

03 服务限流熔断

同样这个功能不应该在微服务开发阶段进行任何配置或代码文件的增加。

在微服务成功的部署和交付上线后,应该能够针对微服务,微服务API接口两个不同的颗粒度进行服务限流设置。当然需要支持类似并发量,时长,错误数,数据量等多种限流熔断策略。

比如一个微服务单点能够支撑的最大并发量是1000TPS,那么这就是最基本的限流条件。我只需要设置单点能量,而不是设置集群能力。管控治理平台要管理的是通过负载均衡分发后到单个节点的流量能够控制到1000TPS。如果你部署了5个微服务节点,那么实际能够支撑的最大流量就是5000TPS。

由于采用Mesh去中心化的架构模式,因此实际微服务间的调用数据流量并不会通过微服务治理平台,微服务治理平台本身并没有太大的性能负荷压力。这个是和传统的ESB或API网关不同的地方,即API网关的限流一方面是保护API网关本身,一个是保护下游的微服务模块。

04 接口调用日志记录

注意这个功能本身也是可以灵活配置的,可以配置单个微服务,也可以配置单个API接口服务是否记录日志,包括日志记录是只记录调用时间和状态,还是需要记录想的接口调用消息报文数据。

在去中心化架构模式下,接口调用日志记录相对来说很容易实现。

即通过Sidecar边车首先对消息和数据流量进行拦截,任何将拦截的数据统一推送到消息中间件,消息中间件再将日志信息存入到分布式文件存储或对象存储中。

对于接口调用日志本身应该区分日志头信息和消息日志信息,对于日志头调用记录信息应该还需要推送到类似ELK组件中,以方便进行关键日志的审计和问题排查。

05 服务链路跟踪和监控

注意,在传统的服务链跟踪中,需要在微服务端配置Agent代理。而采用Mesh化解决方案后,该部分代理能力也移动到了Sidecar边车代理中实现。

服务链路监控不仅仅是微服务和API接口间的调用链路,也包括融入常规APM应用性能监控的能力,能够实现前端界面操作后发起的整个应用链路监控。

应用链路监控一方面是进行日志和错误分析,一方面是进行性能问题排查和优化。

06 和DevOps和容器云的集成

简单来说就是开发人员只需要按照标准规范开发单个微服务模块,然后走DevOps持续集成和交付过程进行部署。

在和DevOps平台进行集成后,DevOps在进行自动化部署前会下发Sidecar代理边车,实现对微服务本身的流量拦截和各种管控治理能力。在整个过程中Sidecar对开发者不可见,满足最基本的服务透明要求。

在通过DevOps部署到容器云平台后,满足基于资源调度策略进行后续微服务集群资源的自动化动态扩展能力。同时微服务在扩展后自动进行相应的集群注册,微服务API接口注册等操作。

在传统的SpingCLoud开发框架中,本身注册中心包括了对微服务模块的心跳检查和节点状态监控能力。在和Kurbernetes集群集成和融合后,完全可以采用Kurbernetes集群本身的心跳监控能力。

简单总结

最后总结下,整个微服务治理平台基于ServiceMesh去中心化架构思路来定制,但是需要实现类似传统ESB总线或API网关的所有管控治理能力。

对于最终的使用者来说并不关心治理能力实现是否是去中心化架构,而更加关心两个点。第一个点是开发阶段不要引入治理要求,第二就是能够实现核心能力的集中化管控和可灵活配置扩展。

也就是你可能上层看到的是一个传统的SOA治理管控平台,但是底层却是采用了去中心化的ServiceMesh架构来实现微服务治理管控能力。

『肆』 关于Re的那个方程为什么可以直接消去e的jwt

昨晚看到《电磁场与电磁波》时变电磁场一章,书中又一次出现了jw和e^jwt,之前一直无法理解诸如为什么电感的阻抗可以表示成jwL之类的问题,jw是从哪里推导出来的呢?为什么可以直接与L相乘呢?

昨晚在网上查了一下,看到这么一句话“由于正弦信号α=α0+wt,所以关于角度求导就是关于时间t求导,dα=wdt。所以jw其实是和关于时间求导是等价的,只是前提是正弦信号”。

哦!原来如此,jw原来是e^jwt对时间求导得到的,那么再拿电感为例,电感两端电压电流关系是u=L*di/dt,将u和i写成复数形式u*e^jwt,i*e^jwt,那么原式就可以写成u*e^jwt=L*d(i*e^jwt)/dt=L*i*jw*e^jwt,两端同时消去e^jwt,可得到

u=L*i*jw,根据欧姆定律可得,Z=u/i=jwL。

『伍』 看,这一代“广告狂人”

1990年代,互联网诞生之初,是各大国际4A在中国呼风唤雨的时代,他们引领中国的广告市场,拥有不可撼动的行业地位。

与此同时,互联网的新土壤正孕育着一些数字营销公司。起初他们毫不起眼,慢慢崛起,2005年以后,随着人人网、QZone等社交媒体爆发出惊人的传播和营销力量,数字营销阵营的广告公司,越来越成为各大金主的合作首选,甚至成为领头的代理商,国际4A在传统广告领域无人可战的局面第一次有了明显的打破。

微博、微信的相继出现,为数字营销插上了前所未有的丰满羽翼,特别是它快速裂变出来的Social专项代理公司又以催枯之势野蛮生长。

以国际4A为代表的传统广告,与新生数字营销集团的冲突达到一个峰值,业界传出电通收购安吉斯是一个标志,而2013年前者斥资32亿英镑收购后者,既是两大阵营的一次握手言和,也预示着广告行业势不可挡的融合的新潮流的到来。

以杨烨炘、李三水、江畔等为代表的国际4A高管或骨干成员,2013年左右,纷纷出走,自我革命,自立门派,天与空、W、意类等聚合两大广告阵营优势的广告新势力在短短几年间迅速崛起,数以百计的独立创意公司纷纷宣告成立。

国际4A遭受质疑,新势力的锐气投射到作品的成效颇丰,也偶起争议。如此行业大势,此前很少有媒体拉着各方出场,严肃讨论这个正在发生的百家争鸣的广告时代。

《第一财经周刊》这篇深度广告行业观察文章,有理有据,集合采访,例举各方观点,综合地记录了这个剧烈震动的广告新时代。

这个正在到来的新广告黄金时代,你应该看看,这个时代的广告狂人们正在怎么干和怎么看。

原文标题《新·黄金时代》,已获授权,全文如下:

当一个行业面临巨大的趋势变革时,人才流动一定会随之加快——这一点在当前的广告行业正在发生。这些广告人感受到了变化,经历了焦虑,同时也看到好创意有了更突显的价值,产业链有了更需要融合的趋势。这些变化带来了大量新机会,很可能预示着纷乱之后一个新的广告黄金时代。

                                                                                              —《第一财经周刊》执行总编辑 赵嘉

“这是最好的时代,这是最坏的时代。”狄更斯的这个金句常被用来形容各种喜忧参半的情景,这刚好是眼下广告行业的写照。

JWT上海策略策划总监徐振锋就有些着急。他发现过去这一年中,越来越多让人眼前一亮的营销案例出自于本土的小公司。

比如今年5月,由W公司策划的New Balance的广告片《每一步都算数》上线5天内就在腾讯视频播放了超过500万次,而这个影响力级别的广告以往基本都是由4A公司投入几十人、花费几个月时间完成的。反观W,它于2014年10月才成立、只有几十人规模。

像W这样以创意为主导的本土小型独立广告公司近年来频繁涌现,包括2012年12月成立的Karma,2013年11月成立的天与空,2014年成立的oookini、意类等。在它们的客户名单上,已经开始出现诸如可口可乐、西门子、耐克、淘宝天猫、腾讯这些传统的和新的广告金主。

“老实说,在有些地方,我们(4A公司)已经跟它们产生竞争了,这不是未来的事情,而是正在发生的。” 徐振锋在电话里向《第一财经周刊》承认。

同时,无一例外的,这些徐振锋口中所谓的小公司,其创始人都有过在4A工作的经历,他们中有的人甚至已经待了十多年。如今选择离开,当然有部分是出于个人选择,但更多还是因为整个广告行业已经开始发生巨大的变化。

2013年10月,杨烨炘离开了供职长达15年的4A,和其他几个合伙人一起创办了天与空。他当时是上海盛世长城创意群总监,更早之前,他还担任过上海李奥贝纳创意群总监,北京奥美、广州奥美、广州李奥贝纳的创意总监。

“我有一种很强的危机感。”杨烨炘对《第一财经周刊》说。2012年夏天,他的团队为立邦漆做了一个以“刷新生活”为主题的地铁艺术展, “我很明显感觉到4A还是以传统广告为主,跟数字营销公司、公关公司都脱节了,” 因为推广和传播的工作是分别由另外的数字营销公司和公关公司做, “也就是说,创意的空间很狭窄。而且这些公司并没有参与到我们早期的创作工作中,每家公司又有自己的老板、创意和营销总监,会对创意做不同程度的歪曲,流程也会拖得很长。”

杨烨炘的危机感源于当时整个广告环境已经发生的变化。在前一年,也就是2011年,戛纳国际广告节更名为戛纳国际创意节,并且 从2012年开始,基于互联网技术的广告奖项迅速增加,技术公司开始大量进入这个行业。也就是说,创意在过去只是广告公司的一个部门,而现在的情况是,广告公司变成了创意的一个部分。

“如果你还称之为广告行业,称自己是广告公司,是不行的。”苏若菲说。她在2013年5月离开从业10年的广告行业去了甲方,为天猫市场部下属的品牌部工作,在此之前她担任上海BBDO的客户总监。 “创意既包含传统广告,也包括技术类的互动、社会化营销、娱乐营销,甚至线下活动—所有传统4A以前不会做的东西,现在都成为了客户的需求。”

2012年令她印象深刻。一些小型的专门做数字广告的公司出现,4A公司也开始纷纷成立数字部门。跳槽到带着“digital光环”的公司成了广告人一个热门的选择。在这些所谓的新兴公司待过哪怕半年,再跳的时候就带着黄金标签。“当时就处在这么一个激进浮躁的digital狂热期。”苏若菲说。

她还记得当时团队做了一个案例,后来拿了很多奖,但拿奖的原因是在微博上请了一个非常有话题性的人,用一个有争议性的话题做了一个好玩的试验。“完全是社交媒体上的影响力让我们这个作品变得非常成功,而这个案例本身做的电视广告、平面,媒体合作,在整个项目里反倒好像成了可有可无的东西。”

但一两年后再谈到数字营销,她发现大家的思路还是在很传统地去做MiniSite(活动网站)这一类的事,并没有推动真正核心的东西。更早的时候她还在麒灵广告待过,这家2001年创办于上海的广告公司后来被一家来自波士顿的信息技术公司收购,2014年又再次整体卖给阳狮集团,“这在当时的国内还是很少见的,现在已经很明显了,就是各种奇怪的公司都在买广告(创意)公司。那时来了批老外,他们给我们讲国外很好玩的技术和产品,我觉得特别好玩,那不是在做广告,不是4A那套老三样。”

也正是在那个时候,“客户减了合同年份,公司甚至丢了客户”这种事逐渐多了起来,她想起更早之前看到一篇讲麦迪逊大道上广告公司生意锐减的文章,“你会觉得美国发生的其实跟国内是关联的,改变的浪潮已经席卷到中国,生意很难做,钱会减少,客户越来越挑剔。”

同为做客户服务出身的金存依也感受到了这种变化。2012年10月底,35岁的她从北京奥美广告离开,成立不二广告。“奥美全球总部的任务要求简单明了:每年从客户那里拿到的预算要增加。但获得一个稳定的客户越来越难了,所以你听到最多的词就是比稿,而且客户自然是希望它的成本降到最低,”金存依说,“我走的那一年,公司很多人都走了。”

供职于知名创意机构AKQA耐克项目组的王元元、丁茗茗和郑商融选择离职创立oookini工作室的时间是2014年,这个小团队解释自己的创业其实是“抱着毕业的心情”。 “4A模式首先是极度细致的分工,然后是极度完善的流程和快速的人员流动,因为它已经形成了工业化生产的模式,重体系而不重人,已经不适合个人型的人才发挥。” 王元元认为相比传统4A公司,AKQA这类成立于1990年代左右的独立机构已经相当灵活小巧,但传播渠道的变化、新技术和中国近年来的消费升级浪潮还是让几个年轻人感到前所未有的机会正在到来, “过去几十年,中国广告业服务的对象最关心的其实是生产和销售渠道,只有在消费升级、强调品牌独特性的过程中,创意的价值才会特别凸显。” 王元元说。

所以你也可以这么理解, 传统广告行业身陷技术带来的巨大挑战这一事实已经无可争议,但作为硬币的另一面,这也预示着广告从业者们可能正在迎来一个纷乱却充满机会的新时代。

在创办天与空时,杨烨炘认真思考过公司的定位,他并不想单纯开一家数字营销或社会化媒体营销公司,而是希望把4A公司的传统广告、数字营销以及公关、线下活动结合起来,他称之为“跨媒体公司”或“创意机构”。例如不久前为顾家家居策划的“8·16不加班”营销活动,天与空先是在报纸上打起了整版广告,之后又在上海环球港广场做了名为“孤独沙发”的行为艺术,最后再在移动端上线H5。这种围绕某一事件展开的线上线下综合营销成为行业里做案例的常见模式,甚至被称作“天与空套路”。

在杨烨炘看来,这种模式适合于任何一种介质,而且可以根据用户的预算选择任何一个媒体形式来引爆。“我觉得这是未来的趋势。”他说,比如原本是公关公司的华邑已经做数字营销和平面广告了,W也从最开始的一家数字营销公司,涉足电视、平面广告和公关的传播,甚至做社交媒体营销起家的环时互动也在招募传统广告或者公关行业的人才。 “如果你只是固守自己原有的业态,很有可能会被淘汰掉,你帮客户创造的价值越来越低,就越来越失去盈利的能力。”

独立广告公司如此活跃,4A并非没有作出应对。2013年7月,全球两大广告公司宏盟集团和阳狮集团宣布价值350亿美元的合并计划,以此来抗衡更小型的广告公司,尽管这项合并在9个月后就被取消。这几年,你也看到大的广告集团正在对社交、数字或互动营销公司实施一系列的收购—这是它们遇到麻烦时一贯的逻辑。“可这样还是无法做到真正的打通,”杨烨炘解释,“因为它们还是分成不同的业态独立运作—广告公司、数字营销公司、公关公司等。因为集团追求利润最大化,要分开去创造力量。”

要改变的可能更主要是内部架构。 “我们认为创意是这个行业最核心的东西,所以我们总是想把创意最大化。你看大卫·奥格威、李奥·贝纳、DDB的创始人,都是创意人出身。” 杨烨炘在天与空设置了5个创意事业群,分别由创意合伙人带领,团队10个人里面有7个是创意人员,3个是品牌服务人员,没有客户部。相反,他觉得4A变成了以客户部为主导的公司,但客户部大多没有策划和创意能力,更多成了传话的角色。

不过,4A的人力分配也自有其道理—对于它们来说,产出体系的稳定要比创意来得更加重要。 “跟4A合作可能是一个更长久的关系。客户的期待也是策略上的把控更稳定,创意更安全。选择W、天与空这样的小公司,客户可能更期待的是能带给他一些惊喜的东西。” 徐振锋说。

传统广告巨头已经意识到自己的问题,它们试图去改变所谓的“流程长、不够灵活”的印象。 “我们全球的经营策略都在发生很大的变化,首先在公司的哲学上,我们对这个时代的观点是,我们应该帮广告主和消费者解决某一个冲突或问题,是提供解决方案的公司,而不是只专注创意的狭窄的广告公司。其次是对技术持更开放的心态,很多时候你单靠经验已经不能够做到最好的东西了,如果你不懂某一项新技术,可能就不知道这个故事还可以这样讲。”

不过竞争已经不仅仅发生在广告公司之间。

大公司,也就是传统说法里的甲方的in-house agency也在给原有的广告模式带来麻烦。最近的例子是百事成立了一间创意工作室Creators League。你可能已经知道的更早的例子是,2013年耐克挖来Burberry数字营销总监Musa Tariq组建内部品牌建设团队,他上任之初便收回原来由AKQA、W+K、Mindshare、R/GA等代理的社会化媒体业务,改由自己的团队运作。

一份来自数字营销协会SoDA的报告显示,2015年有27%的公司声称在数字营销领域不再与第三方公司合作,这个数字是2014年的两倍。更早前美国全国广告协会(ANA)在2013年就发现,选择自建in-house团队的公司数目在5年间从42%上升到58%。

品牌也开始从广告公司大量招揽人才—苹果今年正式上任的营销传播副总裁Tor Myhren,曾是WPP集团旗下广告公司Grey Group的首席创意官,而优衣库在2014年也接连挖了两位W+K的创意总监,在公司内部负责一些案例的营销和传播。 “品牌想要创造出最适合它们的内容,自建的团队可能会对品牌更加敏感,更有控制权,沟通更快。” 群邑中国CEO徐俊说。

“很多时候我们和广告公司聊,其实是我们在输出信息给它们,然后还得想办法通过各种磨合让双方节奏同步。”苏若菲说。她所在的天猫品牌部,十几个人的团队成员里一半以上来自4A。她理解广告公司只是一个形式,是把人聚集到一个机构里面,“如果是同样的人帮我工作,只是换了个形式,在公司内部还是外部又有什么所谓呢?”

那么广告行业的组织形态真的可以被打破吗?4A的模式能否被搬到线上?金存依发现,开一间自己的广告公司并没有让自己的焦虑感少很多。如果换个思路,做一个专注于解决中小型品牌需求的广告创意解决方案的众包平台呢?

她于是又搭建了一个名为Pitchina的平台,这是一个试图提供“创意直达”的项目,例如客户想做一张海报或拍一支视频,可以在创意平台上购买相应的产品包。随后项目负责人对接客户,帮助梳理品牌,然后分配给平台上第三方的创意特工,最后交给不同的供应商(比如拍片、修图、设计等),当然这个过程中需要特别注意对质量和价格的把控。

另一方面,你会看到媒介公司也在成立创意团队。群邑就加快了在创意内容方面的布局,旗下各家代理公司都拥有了自己的内容营销团队,比如传立媒体的内容创新团队,竞立媒体旗下的内容营销团队MediaCom Beyond Advertising以及迈势的Play团队等。徐俊认为,数字领域里创意、媒介、公关、数字公司的界限会更模糊。

而且在 数字营销领域,广告公司还碰上了一个新对手,咨询公司。

“四大”之一的德勤,如今已经是全球最大的数字化咨询机构之一,这归功于德勤内部的数字化团队Deloitte Digital,这个已经成立5年的部门今年2月还收购了旧金山的创意公司Heat。

“德勤收购广告公司,并不是为了做广告,我们看中的是Heat给我们的创意元素,而不是它现有的业务。”Deloitte Digital德勤数字化中国服务领导人华思远对《第一财经周刊》如此回应。他认为 数字化是一个大潮,而数字化的内涵在最近一两年发生了翻天覆地的变化,已经渐渐从CMO的概念变成了CEO的概念。 德勤希望帮助企业完成全面的数字化转型,甚至包括后端的供应链、产品设计流程、IT及财务系统等。

但对整个行业来说,最绕不过去的对手还是技术公司。“传统广告公司的挑战会发生在购买层面,只要涉及到实时购买广告位,就会涉及到算法、空间等很多因素的改变,这些都需要技术的支撑。未来传统广告公司可能需要更专注于创意层面并在技术层面上与外部公司深度合作,或者是购买技术以适应环境发展。”数字营销公司Criteo的CEO Eric Eichmann告诉《第一财经周刊》,他所在的Criteo专注于重定向广告领域,通过cookies记录用户在电商网站搜索某件商品的行为,并在用户之后访问的网页上重新展示之前被搜索商品的广告,将其拉回到电商网站。

这带来的一个结果是,你会发现很多广告公司也纷纷在做产品了:宏盟集团推出Annalect数据云服务和Accuen程序化平台,而电通安吉斯集团最近也刚成立了数据实验室Dentsu Aegis Data Lab。

WPP集团全球CEO苏铭天认为眼下数字(化)已经改变了广告创意的方法(Digital has defined creativity in a totally different way),而信息由媒介驱动(medium drives the message),并且在不同的媒介上需要用不同的方法。“如今我们业务的3/4都投资在媒体、数据、数字技术上。”他告诉《第一财经周刊》。

所以品牌如今最担心的还是如何处理营销环境的复杂性:注意力的碎片化是如何令以往一些大众传播惯用的方式失效,传播接触点能怎样再指数级增长,如何将自己不同渠道的数据与外部数据整合等。程序化购买、大数据管理平台(DMP)、跨屏解决方案等成了这些广告技术公司讨论的热词。“以受众为中心的媒介策划时代,媒介代理公司之间的差别在于其数据的深度和广度。”徐俊说。

普华永道在最新发布的《2016-2020全球娱乐及媒体行业展望》中预测互联网广告将在2017年首次超过传统电视广告,而根据群邑2016年春季版报告《今年,明年:中国媒体行业预测》,这个时间点在中国来得更快: 2015年中国的互联网广告份额首次超过了电视广告,2016年预计将达到49.7%。其中移动互联网广告以近2倍于整体互联网广告的势头快速增长,在线视频市场总体规模同比增长61.2%。

几乎没有人怀疑Facebook、Google这样的技术巨头已经成了广告行业的大玩家。它们都拥有庞大的用户和丰富的数据,可以做到精准营销,同时还提供营销解决方案并积极探索营销模式的创新。从收入上看,Facebook超过95%的收入都来自广告,而Google广告营收占了Alphabet总营收的89%。根据研究机构eMarketer的数据,这两家公司已经占据移动广告市场超过一半的份额。

但对于精准营销究竟效果几何的疑虑却在愈演愈烈,也几乎成了今年9月底举办的第12届纽约广告周上的主要讨论议题。“在国内,至少前一阵子,我听到的都是精准性,都在说要把大部分钱拿去做精准性投放,”BBDO大中华区首席创意官梁伟丰说,“但最近宝洁已经打算降低它在Facebook上精准广告的花费,它不会是唯一一个。”

正如他所言,品牌终于意识到光有大数据是不够的。“这一年广告主对数字投放确实更理性了。”徐俊说。在Facebook制定的精准营销规则里,每多勾选一个描绘人群画像的标签,单价就会上涨,所以品牌主和媒介购买公司必须思考精准营销到底适用于哪些品牌。还有一种情况是,就算足够精准,但消费者根本不点开看呢?“所以对于到底怎样的曝光才能算有效的impression,以及在广告可见度(viewability)、防作弊方面,品牌都更加重视了。”

除此之外,广告业的新玩家还有很多,比如网红、段子手和KOL。它们很多来自于这个生产链条以外,甚至在两三年前你可能都还没听过这些角色。

“现在如果你问我,我们的竞争对手是谁?我会认为是papi酱、罗永浩这些人。”李三水说,他是W的创始人,同样在麦肯光明等国际4A广告公司、W+K这些创意热店待过。“我们的战场已经从主流媒体移动到自媒体了,在这个战场上,你不得不面对他们。”

这不难理解,广告业多年来的使命就是传递信息并影响消费者,但是否有效影响了消费者这个问题具有主观性,也难以监测,于是有效传达就成为了相对硬性的指标,而在社交网络中,粉丝数、活跃度正好提供了这种评判标准。

梁伟丰在过去18个月到24个月的感受是: 广告界越来越像金融界了。 他发现最近看到的跟行业相关的文章或碰到的同行,都在说融资、平台合作和各种关于趋势的讨论:粉丝经济、网红经济、直播、娱乐营销、消费升级。 “这个行业好像创造了很多新的术语,却没创造新的广告。” 梁伟丰记得自己15年前刚入行时,同行碰面会讲哪个品牌出了新的案例或者新趋势,甚至哪个导演又拍了新片,用了什么新手法,可 “现在什么才叫广告,你已经说不上来了。广告其实越来越不像广告,表现形式和传播渠道都变了。” 梁伟丰形容自己像一只天鹅,水面上看是优雅的,一沉到水里就不行。 “我现在不会说我要找客户人员、策略人员,或者创意人员,我要找的是广告人。”

李奥贝纳中国CEO莫熙慈最近也在思考一件事:在互联网上,一个东西最多停留一两个星期就过去了,但品牌是长远的,这两方面要怎么平衡?怎么利用新媒体达到传播目的,同时又维持品牌持续性的竞争力?“这是客户的挑战,也是我们的挑战。”他在接受《第一财经周刊》采访时这样表示。

但是杨烨炘们却足够兴奋。广告行业一直在衰减的东西是什么呢?“就是对媒体传播渠道的依赖性。”李三水说。 “现在一些广告人出来好像能够做一点事情,本质原因在于媒体去中心化了,你会发现广告公司作为集团型或者说高层决策型的优势会被取代掉,变成更低成本、更个人化的内容制造商占主导。” 他认为以前的广告代表广而告之,其实是一种媒体语言,但是现在的广告广为受众,在这样的传播域场里,人人都是内容制造商,又都是消费者。

对单一传播渠道的依赖减少同时也让创意的价值更被凸显。“靠点子靠创意去致胜的公司其实是最近这两年才变得重要的,移动互联网和社交媒体给了创意人一个机会,好的创意不用太多的投放预算也能冒出来。”闫曌说,他是数据技术公司AdMaster的创始人。AdMaster通过实时监测各种数字渠道的广告曝光量,分析在线广告在数字电视、电脑、智能手机和平板等不同平台上的效果,为广告主提供投放意见。

“4A里应该充满了迷茫的中层和好奇的职场新人,但越来越多好的广告人在摩拳擦掌。”江畔说,她是意类广告公司的创始人。虽然团队只有十几个人,但最近他们为淘宝做的《一千零一夜》项目,以及请胡歌为QQ阅读拍摄的地铁广告你可能都不陌生。江畔在上海BBDO待了9年,从助理美术做起,离开的时候已经是创意总监。“意类现在这么小,刚起步,但已经能收到宝洁邀请去分享案例。我觉得现在当然是一个好时代。”

江畔的感受可能代表了这波出走的广告从业者中大多数人的声音: 现在至少是中国本土广告机会最多的时候,可以媲美《广告狂人》里当年的美国。

这的确会令人想起现代广告业最辉煌的时代—想想大卫·奥格威、李奥·贝纳、威廉·伯恩巴克吧,虽然他们的遗产后来越来越细分,变成了流水线作业,分化出了媒介公司、公关公司等,但他们在早期都曾是身兼数职的通才。 如今来到数字时代,媒介渠道的碎片化、信息不对称造成的失衡和技术更迭让广告行业内部再一次有了从细分到整合的趋势需求,人才流动加速,各种新角色加入,在夹杂着茫然、疑虑和试错的同时,也充满了挑战和希望。

“我觉得这个时代有趣的地方就在于它一直在进化,其实没有一个人敢说自己真的了解这个时代。”徐振锋如此总结道。

近期文章

《她唱出了52种爱的文案,却敌不过婚前妈妈的1句反对》

《如何抓住2017年H5广告的新趋势?这7大H5典型也许能告诉你》

《专访数英网联合创始人Hytal:做一个爱思考的创造者》

『陆』 jwt与token+redis,哪种方案更好用

1.问题描述

jwt与token+redis,哪种方案更好用?

问题结论

刚好最近有项目使用了jwt,而且是定制化的jwt的认证机制,就个人的理解而言,各自有其优缺点,并且针对不同的场景需要进行约束性开发,如用户剔除、同一用户每2h只生成一次jwt等。

2.Token机制简述

2.1Token的用途

用户在登录APP时,APP端会发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果验证成功,就会生成相应位数的字符产作为token存储到服务器中,并且磨隐将该token返回给APP端。以后APP再次请求时,凡是需要验证的地方都要带上该token,然后服务器端验证token,成功返回所需要的结果,失败返回错误信息,让用户重新登录。其中,服务器上会给token设置一个有效期,每次APP请求的时候都验证token和有效期。

在存储的时候把token进行对称加密存储,用到的时候再解密。文章最开始提到的签名sign:将请求URL、时间戳、token三者合并,通过算法进行加密处理。

2.2token+redis机制

用户验证通过后,服务端通过如uuid相关的方法,生成token,存储用户信息。当请求服务时,客户端将token带上激含来,进行查询验证,如token存在并在有限期内,请求有效,否则请求非法。

token+redis机制是中心化的,每次验证token有效性时,都需要访问redis,其核心优点实服务端可以主动让token失效,缺点是每次都要进行redis查询。占用redis存储空间。

2.3jwt机制

这是一种无状态身份验证机制,因为用户状态永远不会保存在服务器内存中。服务器受保护的路由将在授权头中检查有效的JWT,如果存在,则允许用户访问受保护的资源。由于JWT是独立的,所有必要的信息都在那里,减少了多次查询数据库的需求。

Javajwt普遍选用java-jwt工具包依赖,gradle依赖:compile'com.auth0:java-jwt:3.2.0'用户发起登录请求,验证通过后,服务端创建一个加密后的JWT信息,作为Token返回。在后续请求中JWT信息作为请求头,发给服务端。服务端拿到JWT之后进行解密,正确解密表示此次请求合法,验证通过;解密失败说明Token无效或者已过期。

jwt的有点主要有:a.其是去中心化的,便于分布式系统使用;2.基本信息可以直接放在token中。user_id,session_id;3.功能权限信息可以直接放在token中。用bit位表示用户所具有的功能权限。其缺点有:服务端无法主动让token失效,另一个是无法很好的控制payload的数据量。

3.小结

jwt和token+redis两种方案,没有最优,只有结合不同的业务场景,需求最适合的方案。就比如token2h过期,同一用户每1.5h只生成瞎铅厅一次token,当两次token并存时,同时有效。大家可以考虑在这两种方案的前提下,分别如何实现?

『柒』 水链有什么优点

简洁性:
水链(JWT)协议将尽可能简单,即便以某些数据存储和时间上的低效为代价,同时水链的操作使用也更加简洁方便。
安全性:
水链(JWT)是一种加密货币,采用智能合约和去中心化技术,很难被窃取和篡改。同时水链(JWT)钱包地址的匿名性,使用户的账户更加安全。
应用性强:
水链(JWT)不同于其他的空气币,水链(JWT)创造之初就被多家企业和无数的商家认可,可以在这些企业与商家中使用,同时这些丰富的应用场景也让水链(JWT)称为一款应用型极强的数字货币,产生了更高的价值。

阅读全文

与jwt去中心化相关的资料

热点内容
苹果手表可以看比特币行情吗 浏览:545
比特币价格跟着什么走 浏览:151
BWpOOL矿池怎么提币 浏览:750
小额比特币作用 浏览:835
挖矿日报 浏览:564
btc矿机怎接入 浏览:508
办公室安比特币矿机网监 浏览:898
mykey开通以太坊 浏览:555
矿机挖olo币是骗局吗 浏览:595
云算力挖矿啥意思 浏览:894
贵阳区块链金融 浏览:314
莱特币矿池部署 浏览:610
做数字货币被拘留 浏览:540
digitcoin区块链 浏览:126
btcs挖矿解 浏览:756
冒险与挖矿矿区阵容 浏览:642
区块链是供应链技术吗 浏览:478
huobi区块链教学 浏览:140
以太坊疯魔3d 浏览:634
武汉芯动科技矿机官网 浏览:186