当前位置:首页 > 经验 >

服务型电商如何搭建(电商服务架构图讲解)

来源:原点资讯(www.yd166.com)时间:2022-10-29 04:01:42作者:YD166手机阅读>>

鉴权中心服务认识JWT

JSON web token 是一个开放的标准 ,它定义了一个种紧凑的,自包含的方式,用于作为json对象在各方之间安全的传输信息

  • 服务器鉴权完成之后 会生成 json 对象 发送给客户端,之后客户端和服务端传输数据都需要带上这个对象,服务器完全通过这个json对象认定客户端身份,为了防止篡改数据,服务端在生成的时候都会加上签名(加密的意思),服务器不保存session数据也就是无状态,更适合实现扩展
  • 那些环境可以考虑使用jwt呢?用户授权 ,信息交换
JWT组成部分
  • Header :头部信息

Header 由两部分组成(Token类型,加密算法的名称),并且使用的是base64的编码

服务型电商如何搭建,电商服务架构图讲解(1)

  • Payload:我们想要传递的数据

Payload KV形式的诗数据 ,这里就是我们想要传递的信息(授权的话就是Token信息)

  • Signature :签名

Signature 为了得到签名 首先我们得有编码过的Header 编码过的payload 和一个密钥。签名用的算法就是header中指定的那个,之后就会对他们签名

我们需要一个签名公式

HMACSHA245(base64UrlEncode(header) "." base64UrlEncode(payload),secret)

产生一个签名,返回一个字符串,返回给客户端,之后客户端每次访问都要带上这个字符串,进行鉴权

JWT使用.号来连接 HHH.PPPP.SSSS

授权,鉴权设计

这里我们先不考虑 gateway 网关,后续会搭建,我们的重点放在中间和右边部分

服务型电商如何搭建,电商服务架构图讲解(2)

鉴权部分,我们独立实现公共的工具类,为什么?以下三点

  • JWT本质上是通过算法算出的加密字符串,也可以通过算法反向解析出来,他不依赖任何的框架,所以这个功能有可以单独提取出来的前提
  • 我们的电商系统包含多个微服务,很显然我们每个服务都需要鉴权,于是我们把这个方法提取出来,方便复用
  • 高性能鉴权,为什么不在授权中心做鉴权,首先他回头过http请求等一系列操作,我们在本地只用java的话 少去了很多步骤,性能得到倍数的增长
授权编码实现

我们创建新的一个服务来编写我们的鉴权中心

e-commerce-authority-center

导入相关的依赖

<dependencies>
<!-- Spring cloud alibaba nacos discovery 依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
<!-- Java Persistence API, orm 规范 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- mysql 驱动, 注意, 这个需要与 MySQL 版本对应 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.hyc.ecommerce</groupId>
<artifactId>e-commerce-mvc-config</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- zipkin = spring-cloud-starter-sleuth spring-cloud-sleuth-zipkin-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>2.5.0.RELEASE</version>
</dependency>
<!-- screw 生成数据库文档 -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.3</version>
</dependency>
</dependencies>

导入好依赖之后我们 编写对应的配置,如注册到naocs 加入adminserver的监管,配置数据源等 这里我们使用jpa 来做orm

  • 配置编写

server:
port: 7000
servlet:
context-path: /ecommerce-authority-center
spring:
application:
name: e-commerce-authority-center
cloud:
nacos:
discovery:
enabled: true # 如果不想使用 Nacos 进行服务注册和发现, 设置为 false 即可
server-addr: 127.0.0.1:8848 # Nacos 服务器地址
# server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850 # Nacos 服务器地址
namespace: 1bc13fd5-843b-4ac0-aa55-695c25bc0ac6
metadata:
management:
context-path: ${server.servlet.context-path}/actuator
jpa:
show-sql: true
hibernate:
ddl-auto: none
properties:
hibernate.show_sql: true
hibernate.format_sql: true
open-in-view: false
datasource:
# 数据源
url: jdbc:mysql://127.0.0.1:3306/imooc_e_commerce?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
username: root
password: root
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
# 连接池
hikari:
maximum-pool-size: 8
minimum-idle: 4
idle-timeout: 30000
connection-timeout: 30000
max-lifetime: 45000
auto-commit: true
pool-name: ImoocecommerceHikariCP
kafka:
bootstrap-servers: 127.0.0.1:9092
producer:
retries: 3
consumer:
auto-offset-reset: latest
zipkin:
sender:
type: kafka # 默认是 web
base-url: http://127.0.0.1:9411/
# 暴露端点
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always

服务型电商如何搭建,电商服务架构图讲解(3)

服务型电商如何搭建,电商服务架构图讲解(4)

首页 123下一页

栏目热文

怎样打造电商服务(如何运营好电商服务中心)

怎样打造电商服务(如何运营好电商服务中心)

用户运营顾名思义,指的是以用户为中心,遵循用户需求去设置运营活动与规则,严格控制实施以达到预设目标与任务的过程。用户运营...

2022-10-29 03:22:08查看全文 >>

电商平台如何服务标准化(如何做好电商平台的服务创新)

电商平台如何服务标准化(如何做好电商平台的服务创新)

中国质量新闻网讯(记者 梁明) 10月13日,记者从广州市市场监管局获悉,广州市地方标准《直播电商营销与售后服务规范》(...

2022-10-29 03:43:58查看全文 >>

如何从零开始学做电商(七种人不宜学电子商务)

如何从零开始学做电商(七种人不宜学电子商务)

如何从零开始学做电商大家哈喽鸭,我是黄思勇,懂电商运营的美工,生死看淡不服就干,只讲你懂的运营和设计。这是我在头条的第一...

2022-10-29 03:25:49查看全文 >>

电商个性化服务的重要性(电商服务是核心还是基础)

电商个性化服务的重要性(电商服务是核心还是基础)

个性化推荐最早起源于美国电商平台亚马逊,推荐系统能够基于上亿的商品目录为数百万用户提供推荐服务。那电商App基于个性化推...

2022-10-29 03:40:17查看全文 >>

定制电商的模式(取代电商的新模式)

定制电商的模式(取代电商的新模式)

中新社合肥7月5日电 题:安徽拓展跨境电商新模式 “千人千面”个性定制商品海外受追捧中新社记者 张俊印有头像的定制棒球、...

2022-10-29 03:57:56查看全文 >>

想做电商怎么入手(我想做电商怎么加入)

想做电商怎么入手(我想做电商怎么加入)

随着消费者消费习惯的改变,向线上商城转型已经是企业未来能够持续发展的必要因素。但是,如何向线上转型,如何真正地做好电商呢...

2022-10-29 03:26:51查看全文 >>

电商定制服务(电商平台开发定制)

电商定制服务(电商平台开发定制)

“质优价宜”的形象、出售种类丰富的产品是消费者对电商品牌选择的优先项。一个电商品牌成功的因素有很多,其中最重要的一点就是...

2022-10-29 03:59:42查看全文 >>

电商怎么做到优质服务(电商如何做到极致服务)

电商怎么做到优质服务(电商如何做到极致服务)

(图片来源:图虫创意)没有电商的日子已不复存在。早在2000年初,线下品牌方不必担心有强劲的电商品牌存在。但现在,电商品...

2022-10-29 03:59:19查看全文 >>

电商怎么打磨极致服务(电商企业服务该怎么做)

电商怎么打磨极致服务(电商企业服务该怎么做)

导读:在主力人群的更迭以及消费市场的多元化和细分化需求下,儿童零食品类正在从小透明向新顶流跨越,成为飞速发展的千亿新蓝海...

2022-10-29 03:59:25查看全文 >>

电商如何做特色服务(做电商服务行业的应掌握技能)

电商如何做特色服务(做电商服务行业的应掌握技能)

新华社北京9月3日电(记者宋玉萌、吉宁)2022年中国国际服务贸易交易会上,商务部发布《中国电子商务报告(2021)》,...

2022-10-29 03:26:19查看全文 >>

文档排行