JWT 在 SaaS 系统中的作用与分布式 SaaS 系统设计的最佳实践
在现代 SaaS(软件即服务) 系统中,随着服务规模的扩大和用户需求的多样化,如何高效、安全地进行用户身份验证、权限控制以及租户隔离,成为了系统架构中的核心问题之一。**JWT(JSON Web Token)**作为一种轻量级的身份验证和授权标准,已经成为解决这一问题的主要方案之一。本文将深入探讨 JWT 在 SaaS 系统中的作用,以及如何通过 分布式设计 来实现更加高效、灵活、安全的架构。
一、JWT 在 SaaS 系统中的核心作用
1. 用户身份验证与授权
在传统的单体架构中,用户认证信息通常存储在集中式的会话(Session)中,而在分布式的 SaaS 系统中,随着微服务架构的引入,使用传统的 Session 存储方式已经不再适用。JWT 是一种基于 无状态(Stateless)的令牌,它将认证信息(如用户身份、权限等)封装在 Token 中,并通过 数字签名 保护内容的完整性,避免篡改。因此,JWT 可以在跨多个微服务或系统间传递身份验证信息,无需集中存储。
- 无状态认证:JWT 是无状态的,用户每次请求时携带令牌,后端服务无需保存会话信息,提升了系统的可扩展性。
- 分布式授权:多个微服务可以通过 JWT 中的用户信息来进行权限校验,实现跨服务的统一认证与授权。
2. 租户隔离与多租户支持
在 多租户 SaaS 系统 中,JWT 不仅承载用户信息,还能携带租户信息(如租户 ID),从而确保不同租户之间的数据隔离。每次请求通过解析 JWT,可以根据租户 ID 来确保数据的正确访问和权限控制。这样,每个微服务都能够基于 JWT 验证租户身份,并确保不同租户的资源隔离。
- 租户 ID 传递:JWT 中可以封装 租户 ID,让每个微服务知道请求所属的租户,避免了跨租户的数据访问。
- 数据隔离:微服务可以根据 JWT 中的租户信息,查询相应的数据,确保租户之间的数据隔离。
3. 简化微服务通信
在微服务架构中,服务之间通常需要通过 API Gateway 或直接调用彼此的 REST API。每个微服务都需要验证调用方的身份和权限。JWT 提供了一种简单的方式,通过在 HTTP 请求头中携带 Token,服务可以直接验证请求的合法性,避免了每个服务进行复杂的身份认证。微服务之间只需要共享 公钥 来验证 JWT,避免了重复的身份验证操作。
- 轻量级传输:JWT 是一个自包含的令牌,包含了认证所需的所有信息,减轻了后端服务的压力。
- 统一认证:微服务通过共享公钥来验证 JWT,无需每个服务单独存储用户的认证信息。
二、如何设计分布式的 SaaS 系统以更好地利用 JWT?
随着 SaaS 系统 的发展,分布式架构逐渐成为主流,而 JWT 则成为支持分布式身份验证的关键技术。为了最大化 JWT 在分布式 SaaS 系统中的优势,设计一个高效、可扩展的架构是至关重要的。以下是一些最佳实践。
1. 统一的身份认证服务
在分布式系统中,多个微服务可能需要进行用户身份验证和授权。为了简化认证逻辑,可以将 JWT 生成和验证的功能抽象为 单独的认证微服务。该微服务负责处理用户登录、注册、JWT 生成、刷新及密钥管理等功能,其他微服务无需关心认证的细节。
- 单一职责:认证微服务专门负责用户身份验证和 JWT 生成,其他微服务只需要调用该服务。
- 高可用性:认证微服务可以通过 负载均衡 和 集群部署,确保在高并发环境下的可用性。
2. 分布式密钥管理与轮换
JWT 的安全性依赖于密钥的保护。为了实现 密钥的动态轮换和更新,在分布式 SaaS 系统中,可以采用集中式的密钥管理服务(如 KMS(Key Management Service)、Vault 或 Nacos),并通过 JWT 公钥获取接口 让所有微服务能够实时拉取最新的公钥。
- 密钥管理服务:通过集中式的密钥管理,确保密钥的安全性,并支持密钥的自动轮换。
- 公钥接口:所有微服务通过一个统一的 API 获取当前有效的公钥,用于验证 JWT 的签名。
3. 基于角色的访问控制(RBAC)与精细化权限管理
为了实现 精细化权限控制,在设计 JWT 时,可以将 用户角色、租户角色 以及 权限信息 等关键信息嵌入 JWT。每个微服务在解析 JWT 时,根据角色和权限信息来判断当前用户是否有访问某个资源的权限。
- 用户角色和权限:JWT 中可以包含用户的角色信息(如管理员、普通用户等),服务在接收到请求后,根据角色信息进行访问控制。
- 租户角色管理:多租户 SaaS 系统中,不同租户可能有不同的角色和权限,通过 JWT 中的租户信息,可以实现 租户级别的权限控制。
4. Token 刷新与会话管理
虽然 JWT 通常是无状态的,但在一些场景下,我们可能需要实现会话续期机制,尤其是当 JWT 过期时。为了避免频繁的用户重新登录,可以采用 刷新令牌(Refresh Token) 机制。
- 刷新令牌:每当用户登录时,不仅生成访问令牌(Access Token),还生成一个长时间有效的刷新令牌。访问令牌过期后,用户可以使用刷新令牌请求新的访问令牌。
- 短期访问令牌:访问令牌的有效期应尽量设置较短,减少因令牌泄露带来的安全风险。
5. 日志审计与安全防护
在分布式 SaaS 系统中,日志审计 是保障系统安全的重要手段。JWT 提供的 签名验证 和 用户信息 可以帮助监控和审计用户行为,防止恶意攻击和非法访问。
- 行为审计:通过记录 JWT 中的用户信息,能够追踪和审计用户的操作,确保系统行为符合预期。
- 防止伪造:由于 JWT 采用加密签名,可以有效防止伪造和篡改,增强系统的安全性。
6. 微服务之间的跨域认证
在微服务架构中,服务之间的认证与授权问题不可忽视。利用 JWT 的 跨域认证能力,可以让服务在不同的域和环境中方便地进行身份验证,避免了每个服务单独处理用户登录状态的问题。
- 跨域认证:微服务通过 JWT 实现跨域身份验证,无需重复登录,提高了用户体验。
三、总结
在分布式 SaaS 系统 中,使用 JWT 进行用户身份验证、权限控制和租户隔离,能够显著提升系统的性能、安全性和可扩展性。通过合理设计 JWT 的生成与验证机制,确保密钥的管理与轮换,同时结合分布式架构的优势,可以为 SaaS 系统提供更强大的支持。在实际应用中,基于 JWT 的认证方案能够让我们轻松应对跨服务、跨域、跨租户的身份验证问题,打造出一个灵活、高效、安全的 SaaS 系统。
相关文章:
JWT 在 SaaS 系统中的作用与分布式 SaaS 系统设计的最佳实践
在现代 SaaS(软件即服务) 系统中,随着服务规模的扩大和用户需求的多样化,如何高效、安全地进行用户身份验证、权限控制以及租户隔离,成为了系统架构中的核心问题之一。**JWT(JSON Web Token)**作…...
docker更换容器存储位置
一:原因 今天之前在某个服务器上使用docker搭建的服务突然无法访问了,进入服务器查看发现服务运行正常,但是就是无法使用,然后我这边准备将docker服务重新启动下看看,发现docker服务无法重启,提示内存已满…...
gitlab-cicd部署安装与具体操作
一、安装 本例中是用安装包直接在ubuntu下安装的,也可以用docker镜像。 curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_amd64.rpmrpm -i gitlab-runner_amd64.rpm 安装runner后,需要跟在runner所在服务器安装…...
基于MFC实现的人机对战五子棋游戏
基于MFC实现的人机对战五子棋游戏 1、引言 此报告将详细介绍本次课程设计的动机、设计思路及编写技术的详细过程,展现我所学过的C知识以及我通过本次课程设计所学到例如MFC等知识。在文档最后我也会记录我所编写过程遇到的问题以及解决方案。 1.1 背景 五子棋是…...
mac电脑多个ssh keys共存
一、同一台电脑,不同域名的git仓库为什么要设置不同的ssh keys? 每个git仓库通常要求使用唯一的ssh key,以防止权限冲突和安全问题。 权限控制:每个git仓库的权限是独立的,使用不同的ssh keys可以更好的管理权限&…...
Elasticsearch数据迁移(快照)
1. 数据条件 一台原始es服务器(192.168.xx.xx),数据迁移后的目标服务器(10.2.xx.xx)。 2台服务器所处环境: centos7操作系统, elasticsearch-7.3.0。 2. 为原始es服务器数据创建快照 修改elas…...
【Java-数据结构篇】Java 中栈和队列:构建程序逻辑的关键数据结构基石
我的个人主页 我的专栏:Java-数据结构,希望能帮助到大家!!!点赞❤ 收藏❤ 一、引言 1. 栈与队列在编程中的角色定位 栈和队列作为两种基本的数据结构,在众多编程场景中都有着独特的地位。它们为数据的有序…...
使用ensp搭建内外互通,使用路由跨不同vlan通信。
1.网络拓扑图 2.规则 (1)允许 (自己)ping通内外网,内外网随便一个pc就可以. (2) 允许(电信)ping通内外网,内外网随便一个pc就可以 (时间问题不做…...
URDF 发布者
URDF 发布者 #! /usr/bin/env python3 import rclpy from rclpy.node import Node import rclpy.parameter from sensor_msgs.msg import JointState from rcl_interfaces.msg import SetParametersResultimport threading import timeclass RotateWheelNode(Node):def __init…...
用于目标检测的集中式特征金字塔
摘要 https://arxiv.org/pdf/2210.02093 视觉特征金字塔在多种应用中已展现出其在有效性和效率方面的优越性。然而,现有方法过度关注层间特征交互,却忽略了经验证明有益的层内特征调节。尽管一些方法试图借助注意力机制或视觉变换器来学习紧凑的层内特征表示,但它们忽略了…...
微信小程序购物车全选反选功能以及合计
微信小程序基于Vant Weapp的购物车功能实现 1、单选 使用微信小程序原生表单组件checkbox和checkbox-group 注意:checkbox原生不支持bind:change事件,checkbox-group支持 <checkbox-group bindchange"handleCheck"><checkbox val…...
大数据新视界 -- Hive 数据湖集成与数据治理(下)(26 / 30)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
【基础数学二】整除,最大公约数约数,最小公倍数
整除 在数论中,一个整数 a a a 能够被另一个整数 d d d 整除,记做 d ∣ a d|a d∣a。 整除的性质: 如果 d ∣ a d | a d∣a,则对于任意整数 k k k 有 d ∣ k a d | ka d∣ka。如果 d ∣ a d|a d∣a 并且 d ∣ b d|b d∣…...
【lua语言基础(四)】IO模型以及补充知识
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:lua从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学更多lua语言的知识 🔝🔝 lua语言基础 1. 简单的IO模型2…...
Python知识分享第十九天-网络编程
网络编程 概述用来实现 网络互联 不同计算机上运行的程序间可以进行数据交互也叫Socket编程 套接字编程 三要素IP地址概述设备在网络中的唯一标识分类IPV4城域网13广域网22局域网31IPV6八字节 十六进制相关dos命令查看ipwindows: ipconfigmac和linux: ifconfig测试网络ping 域…...
【JuMP.jl】非线性规划
[JuMP] 03 非线性规划 非线性规划模型 非线性规划问题是线性规划问题的自然推广, 在实际的工程问题中,优化问题中的目标函数与约束不会总是线性函数,因此非线性规划的求解功能是必要的。 min x ∈ R n f 0 ( x ) s.t. l j ≤ f j ( x ) ≤…...
网络(TCP)
目录 TCP socket API 详解 套接字有哪些类型?socket有哪些类型? 图解TCP四次握手断开连接 图解TCP数据报结构以及三次握手(非常详细) socket缓冲区以及阻塞模式详解 再谈UDP和TCP bind(): 我们的程序中对myaddr参数是这样…...
40分钟学 Go 语言高并发:服务性能调优实战
服务性能调优实战 一、性能优化实战概述 优化阶段主要内容关键指标重要程度瓶颈定位收集性能指标,确定瓶颈位置CPU、内存、延迟、吞吐量⭐⭐⭐⭐⭐代码优化优化算法、并发、内存使用代码执行时间、内存分配⭐⭐⭐⭐⭐系统调优调整系统参数、资源配置系统资源利用率…...
5092 星际争霸
逆序对排序; 字符串遍历; pair 特点: 两个值,第一个是字符串,第二个是逆序对数。而且没有重复的字符串。 #include<bits/stdc.h>using namespace std; typedef long long ll; const int N1e35; #define x f…...
AUTOSAR AP 汽车API知识点总结(Automotive API )R24-11
汽车API知识点总结 一、背景与目标 背景:智能互联汽车正逐步依赖远程诊断、软件更新等功能以确保行驶安全,并且用户已习惯于通过智能设备中的应用程序控制连接设备。虽然AUTOSAR标准支持车辆软件的可更新性,但尚未提供将AUTOSAR应用产生的数据和功能安全可靠地暴露给非AUTO…...
vue2:Cascader 级联选择器中加载两种不同的数据结构
前言 因UI调整,需要将el-tree控件更换为级联选择器,而在原树形控件中,加载了两种不同的数据结构,(参见vue2:树形控件el-tree中加载两种不同结构的数据_vue2 树形插件-CSDN博客)所以现在级联选择器中也需要加载这两种不同的数据结构。 问题 原本以为处理方式差不多,在…...
【xLSTM-Transformer序列分类】Pytorch使用xLSTM-Transformer对序列进行分类源代码
Python, Pytorch使用xLSTM-Transformer对序列进行分类源代码。xLSTM是不久前LSTM团队提出来的新模型,将xLSTM融入Transformer的Encoder中,创新型较强。另外,Transformer是完整的,即使用了Encoder、Decoder和Embedding所有模块。 …...
TDengine 签约安徽智质,助力海螺水泥智慧工厂升级
在当前制造业数字化转型的浪潮中,如何实现智能化、自动化与数据驱动的高效生产,成为企业提升竞争力的关键。尤其是在水泥、钢铁等传统行业,随着技术的不断进步,如何打破数据孤岛、提升生产管理效率,已经成为许多工厂亟…...
Hbase整合Mapreduce案例2 hbase数据下载至hdfs中——wordcount
目录 整合结构准备数据下载pom.xmlMain.javaReduce.javaMap.java操作 总结 整合结构 和案例1的结构差不多,Hbase移动到开头,后面跟随MR程序。 因此对于输入的K1 V1会进行一定的修改 准备 在HBASE中创建表,并写入数据 create "wunaii…...
WHLUG丨deepin、华中科技大学开放原子开源俱乐部、 RustSBI 和清华大学开源操作系统训练营共话开源新生代成长之路
2024年11月30日下午,由 deepin(深度)社区联合华中科技大学开放原子开源俱乐部、 RustSBI 开源社区和清华大学开源操作系统训练营共同举办的WHLUG(武汉Linux用户组)线下沙龙在华中科技大学成功举办。 本次活动聚集了50余…...
深入理解AVL树:结构、旋转及C++实现
1. AVL树的概念 什么是AVL树? AVL树是一种自平衡的二叉搜索树,其发明者是Adelson-Velsky和Landis,因此得名“AVL”。AVL树是首个自平衡二叉搜索树,通过对树的平衡因子进行控制,确保任何节点的左右子树高度差最多为1&…...
L15.【LeetCode笔记】相同的树
目录 1.题目 代码模板 2.分析 通过合理的if判断分类讨论两个根节点 1.首先,p和q都为NULL的情况最好排除 2.排除了两个都为NULL的情况,剩下的情况:1.其中一个为NULL;2.两个都不为NULL 写法1 写法2 3.只剩下最后一种情况:p和q都不为NULL 3.代码 提交结果 1.题目 https…...
【算法】【优选算法】位运算(下)
目录 一、:⾯试题 01.01.判定字符是否唯⼀1.1 位图1.2 hash思路1.3 暴力枚举 二、268.丢失的数字2.1 位运算,异或2.2 数学求和 三、371.两整数之和四、137.只出现⼀次的数字 II五、⾯试题 17.19.消失的两个数字 一、:⾯试题 01.01.判定字符是…...
网络——Socket与WebSocket
Socket与WebSocket都是网络通信中的重要概念,但它们在原理、应用场景及特性上存在显著的差异。以下是对两者的详细比较: 一、Socket 定义:Socket(套接字)是计算机网络中的一个抽象层,它允许应用程序通过网…...
Springboot3整合Redis
书接上篇《Redis 安装篇(阿里云服务器)_阿里云安装redis-CSDN博客》,安装好Redis后,就需要在springboot项目中使用Redis了。 一、SpringBoot整合Redis 1.添加坐标 <!--redis--> <dependency><groupId>org.sp…...
Java CountDownLatch 用法和源码解析
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
微信小程序3-显标记信息和弹框
感谢阅读,初学小白,有错指正。 一、实现功能: 在地图上添加标记点后,标记点是可以携带以下基础信息的,如标题、id、经纬度等。但是对于开发来说,这些信息还不足够,而且还要做到点击标记点时&a…...
Android 消息队列之MQTT的使用:物联网通讯,HTTP太重了,使用MQTT;断网重连、注册、订阅、发送数据和接受数据,实现双向通讯。
目录: 问题MQTT是什么以及为什么使用如何使用:第一阶段、基础功能如何使用:第二阶段、增加断网重连如何使用:第三阶段、封装 一、问题 在开发的时候,我们一般都使用Http和后台进行通讯,比如我们是开发物联…...
详解Java数据库编程之JDBC
目录 首先创建一个Java项目 在Maven中央仓库下载mysql connector的jar包 针对MySQL版本5 针对MySQL版本8 下载之后,在IDEA中创建的项目中建立一个lib目录,然后把刚刚下载好的jar包拷贝进去,然后右键刚刚添加的jar包,点击‘添…...
详解C++类与对象(四)
文章目录 1.类型转换1.1 前言1.2 类型转换的性质 2.static成员2.1 前言2.2 static的基本概念 3.友元4.内部类5.匿名对象 1.类型转换 1.1 前言 在C中,由于程序员可以自己显示定义一个新的类。这样就会出现一个问题:程序员自己显示定义的类类型与编译器中…...
使用 postman 传递 binary 类型的图片到后端接口遇到的坑
使用 psotman 传 binary 类型图片报错: -2024-12-04 [http-nio-9090-exec-1] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required r…...
第9章 大模型的有害性(上)
9.1 引言 本章将探讨大型语言模型(LLMs)可能带来的有害性,重点讨论以下几个方面: 性能差异社会偏见和刻板印象 在后续内容中,还会涉及其他层面的危害,如有害信息、虚假信息、隐私和安全风险、版权问题、…...
计算机视觉——相机标定(Camera Calibration)
文章目录 1. 简介2. 原理3. 相机模型3.1 四大坐标系3.2 坐标系间的转换关系3.2.1 世界坐标系到相机坐标系3.2.2 相机坐标系到图像坐标系3.2.3 像素坐标系转换为图像坐标系3.2.4 世界坐标转换为像素坐标 3.3 畸变3.3.1 畸变类型3.3.1.1 径向畸变(Radial Distortion&a…...
Java爬虫技术全解析:从入门到精通
引言 在信息爆炸的今天,数据成为了最宝贵的资源之一。爬虫技术作为获取网络数据的重要手段,广泛应用于数据采集、信息聚合、市场分析等多个领域。Java作为一种强类型、面向对象的编程语言,以其稳健的性能和跨平台的特性,成为了开…...
leetcode hot100【Leetcode 416.分割等和子集】java实现
Leetcode 416.分割等和子集 题目描述 给定一个非负整数的数组 nums ,你需要将该数组分割成两个子集,使得两个子集的元素和相等。如果可以分割,返回 true ,否则返回 false。 示例 1: 输入:nums [1,5,11,…...
位段详解+代码展示
系列文章目录 🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼 🎉🎉我的C语言初阶合集:C语言初阶合集,希望能…...
python实现c++中so库调用及dbus服务开发
本期介绍主要分两块,一块是python如何调用so库,另一块是dbus服务的注册与调用; python调用so库 1. c++源码 # test.h文件#include<iostream> using namespace std;extern "C"{ int cacl(int a, int b); struct student{char sname[50];int score;}; stud…...
如何进行GC调优
目录 1、GC是什么? 垃圾回收算法、收集器等 2、优化目标 3、优化策略 这个属于较为开放题目,可以结合自己项目实战出发,体现JVM调优。 1、GC是什么? 垃圾回收算法、收集器等 2、优化目标 (1) 将进入老年代的对象数量降到最低 (2) 减少FullGC的执行…...
JAVA |日常开发中读写TXT文本详解
JAVA |日常开发中读写TXT文本详解 前言一、读取 TXT 文本1.1 使用BufferedReader读取1.2 使用Scanner读取 二、写入 TXT 文本2.1 使用BufferedWriter写入2.2 使用PrintWriter写入2.3 字节流写入(FileOutputStream)后转换为字符流(…...
开源模型应用落地-安全合规篇-用户输入价值观判断(三)
一、前言 在深度合规功能中,对用户输入内容的价值观判断具有重要意义。这一功能不仅仅是对信息合法性和合规性的简单审核,更是对信息背后隐含的伦理道德和社会责任的深刻洞察。通过对价值观的判断,系统能够识别可能引发不当影响或冲突的内容,从而为用户提供更安全、更和谐的…...
apache部署若依前后端分离项目(开启SSL)
网站部署之后,大多数需要配置https,所以本章教程,介绍使用apache部署若依前后端项目的时候,如何开启SSL,以及如何配置SSL证书。 一、安装ssl模块 默认情况下,ssl模块是没有安装的。需要手动安装,否则直接配置SSL模块的时候,会报错。 sudo yum install mod_ssl二、查询s…...
VMware Workstation Pro安装教程 (全图文保姆级)
一、前言 系统:Windows 11时间:2024/12/04需求:注册:broadcom(邮箱)难点:在官网找到下载链接 二、说明 建议前往官网(https://www.vmware.com)下载,可能加…...
【机器学习】—Transformers的扩展应用:从NLP到多领域突破
好久不见!喜欢就关注吧~ 云边有个稻草人-CSDN博客 目录 引言 一、Transformer架构解析 (一)、核心组件 (二)、架构图 二、领域扩展:从NLP到更多场景 1. 自然语言处理(NLP) 2…...
Linux权限机制深度解读:系统安全的第一道防线
文章目录 前言‼️一、Linux权限的概念‼️二、Linux权限管理❕2.1 文件访问者的分类(人)❕2.2 文件类型和访问权限(事物属性)✔️1. 文件类型✔️2. 基本权限✔️3. 权限值的表示方法 ❕2.3 文件访问权限的相关设置方法✔️1. ch…...
【数据集】细胞数据集:肿瘤-胎儿重编程的内皮细胞驱动肝细胞癌中的免疫抑制性巨噬细胞(Sharma等人)
引用此数据集: Sharma, Ankur (2020), “Onco-fetal reprogramming of endothelial cells drives immunosuppressive macrophages in Hepatocellular Carcinoma (Sharma et al)”, Mendeley Data, V1, doi: 10.17632/6wmzcskt6k.1 下载地址:Onco-feta…...
李光满:小红书在美国突然爆火意味着什么?
随着1月19日美国可能封禁Tiktok这个日子的临近,喜爱Tiktok的美国网友们在感到愤怒和不满的同时,也开始感到不安,似乎产生了一种灵魂无处安放的恐慌和焦虑。这个时候,一个名为“tiktokrefugee(Tiktok难民)”的网友在小红书即RedNote上发表的一个话题,迅…...
央媒前主编曝光河南生态破坏遭警察深夜敲门
被破坏的山体 视频截图 我是石光明,媒体人,摄影师。曾任新华社旗下新华网河南频道编辑记者、中央广电总台旗下国际在线河南频道副主编、凤凰卫视旗下凤凰网河南频道新闻总监等职务,视觉中国、东方iC、人民网、光明网、中新社等图片库签约摄影师,也是地方生态环保局的&a…...
遭遇职场性侵后,我决定申请工伤认定
拿到工伤认定书后,崔丽丽去申请劳动仲裁以争取工伤待遇40岁的崔丽丽是国内某汽车零部件制造公司的一名营销总监,2023年,在一次商务宴请的酒局后,遭到公司上司王某性侵。2024年4月,法院对性侵案作出判决,王某因强奸罪被判处有期徒刑四年并赔偿崔丽丽因性侵导致的精神治疗费…...
处级干部“反腐大片”中作诗:父母有儿无人孝,妻子有夫无人疼
1月14日晚,由云南省纪委监委宣传部、云南广播电视台联合摄制的三集电视专题片《纵深推进》第二集《纵深推进反腐败斗争》播出。其中出镜的云南省住房和城乡建设厅建筑市场监管处原处长吴志勇哽咽道:“父母有儿无人孝,妻子有夫无人疼,女儿有父无人管,皆因贪念起祸…...
孟彦:中国卫星过顶美国,拍下B2飞行瞬间
中国卫星锁定B-2踪迹最近,中国某卫星公司发布的一张照片在网络上引起了轩然大波。这张看似寻常的卫星图像,却直击美军七寸,因为它捕捉到了美国最先进、以“隐身”著称的B-2轰炸机在本土飞行的瞬间。这背后释放出的信号,显然非同寻常。卫星技术:打破隐形…...
外媒:特朗普上任在即,墨西哥总统誓言不会屈服于美国
【环球网报道 见习记者 闫珮云】据彭博社报道,在美国候任总统特朗普宣誓就职前几天,墨西哥总统辛鲍姆于12日发表演讲,誓言墨西哥不会屈服于北方邻国(美国)。1月12日,辛鲍姆在墨西哥城发表演讲后挥手致意。 图源:外媒报道称,12日,辛鲍姆在墨西哥城举行的演讲中作出上述…...