首页
3D照片墙
统计
留言
Search
1
1.OAuth 的简单理解
118 阅读
2
多个拦截器的执行顺序
107 阅读
3
基于Annotation方式的声明式事务
102 阅读
4
6.设计模式汇总
101 阅读
5
7.关系代数
99 阅读
Java
JDBC
Spring
Spring MVC
SpringBoot
SpringCloud
MybatisPlus
Mybatis
Maven
SpringSecurity
JVM
java注解与反射
Java JUC并发编程
SSM
.NET
IdentityServer4
EF
.Net Core
AbpVNext + DDD
.NET MVC Api
前端
Jquery&JavaScript
uniapp
VUE
Echars
Vue底层原理
Python
Django
软考笔记
软件设计师
1.计算机组成与体系结构
10.面向对象技术
11.UML类图建模
12.面向对象程序设计
13.数据结构
14.算法基础
16.知识产权标准化
17.程序设计语言
2.操作系统
3.数据库
4.数据库设计
5.计算机网络
6.信息安全
7.系统开发基础
8.项目管理
9.数据流图
架构设计
CQRS架构
DDD架构
数据库技术
SQL锁
SqlServer
Oracle 主从备份
Oracle RAC集群
Mysql
云原生/容器技术
kubernetes
Docker
数据结构与算法
常用中间件
Redis
RabbitMQ 消息队列
ElasticSearch
其他
PHP
OAuth 2.0
WebSocket
ArkTs Harmony 开发
运维
Search
标签搜索
排序算法
vue
算法
遍历
docker
线性
数组
dom
synchronized
数据库
xml语言
log4j
bigint
静态函数
静态方法
哈夫曼树
const
冒泡排序
商标设计
命令模式
Bi8bo
心情不好的时候,就要好好反思自己,平时有没有好好骂人,少问自己为什么,多问别人凭什么。与其精神内耗自己,不如发疯,外耗别人。
累计撰写
304
篇文章
累计收到
7
条评论
首页
栏目
Java
JDBC
Spring
Spring MVC
SpringBoot
SpringCloud
MybatisPlus
Mybatis
Maven
SpringSecurity
JVM
java注解与反射
Java JUC并发编程
SSM
.NET
IdentityServer4
EF
.Net Core
AbpVNext + DDD
.NET MVC Api
前端
Jquery&JavaScript
uniapp
VUE
Echars
Vue底层原理
Python
Django
软考笔记
软件设计师
1.计算机组成与体系结构
10.面向对象技术
11.UML类图建模
12.面向对象程序设计
13.数据结构
14.算法基础
16.知识产权标准化
17.程序设计语言
2.操作系统
3.数据库
4.数据库设计
5.计算机网络
6.信息安全
7.系统开发基础
8.项目管理
9.数据流图
架构设计
CQRS架构
DDD架构
数据库技术
SQL锁
SqlServer
Oracle 主从备份
Oracle RAC集群
Mysql
云原生/容器技术
kubernetes
Docker
数据结构与算法
常用中间件
Redis
RabbitMQ 消息队列
ElasticSearch
其他
PHP
OAuth 2.0
WebSocket
ArkTs Harmony 开发
运维
页面
3D照片墙
统计
留言
搜索到
15
篇与
的结果
2022-08-13
浏览器端
WebSocket 对象 在 Javascrpt 中可以使用 new WebSocket(url) 来创建一个 WebSocket 对象, 它能使浏览器与服务器建立连接。 其中参数 url 是 ws 或 wss 协议的,如: const socket = new WebSocket("ws://localhost:8080/websocket/commodity/%7B2%7D/%7B3%7D"); WebSocket 对象的方法 WebSocket 对象有两个方法,分别是:send() 以及 close()。 send(data) 方法向服务端发送数据,在后端监听接受事件中可以获取到该数据源,可以像普通的 AJAX 一样发送一个 JSON 类型的数据,作为即时通讯功能的话,这个 JSON 对象一般包括三个信息,分别是:发送者ID、接受者ID以及发送内容。 close() 方法用于关闭 WebSocket 连接。 WebSocket 对象的监听函数 初始化 WebSocket 对象时,还需要定义了几个监听函数,当这些监听事件发生的时候就会触发这些监听函数,分别是: onopen():当连接初始建立时触发 onmessage():当 WebSocket 接收到服务器发来的消息的时触发的事件 onclose():当连接关闭时触发 onerror():当连接发生错误时触发 WebSocket 对象的 readyState 属性 WebSocket 对象的 readyState 属性表示当前连接的状态: 0 (CONNECTING):表示正在与服务器创建连接 1 (OPEN):表示与服务器已经创建了连接 2 (CLOSING):表示正在关闭与服务器的连接 3(CLOSED):表示已经关闭与服务器的连接
2022年08月13日
2 阅读
0 评论
61 点赞
2022-05-21
数据类型检测
2022年05月21日
91 阅读
0 评论
60 点赞
2022-05-04
Java服务器端
java 端使用 WebSocket 可以使用以下三种形式: 1、使用 Spring 的底层级 WebSocketAPI 实现(实现 TextWebSocketHandler 接口) 2、使用 Spring 高级API 实现(使用 SimpMessagingTemplate 方法) 3、使用 JSR356 定义的 WebSocket 规范实现 个人认为使用 JSP356 的 WebSocket 规范最为简单。 2.1 JSR356定义的 WebSocket 规范 首先引入依赖: springboot <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>4.3.10.RELEASE</version> </dependency> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> JSR356 的 WebSocket 规范使用 javax.websocket.* 的 API,可以将一个普通 Java 对象(POJO)使用 @ServerEndpoint 注释从而作为 WebSocket 服务器的端点,此时客户端浏览器已经可以对 WebSocket 客户端 API 发起 HTTP 长连接了,如: @ServerEndpoint(value="/websocket/commodity/{userId}", configurator = SpringConfigurator.class) 注释中的参数 value 表示的是 url 路径与 @RequestMapping 注释中的 value 类似,而他表示的是前端创建 WebSocket 对象需要传入的 ws 协议的路径。当中的 {userId} 参数作为当前客户的识别 ID 号,此时客户端传入的 url 应该为: ws://[Server端IP或域名]:[Server端口]/项目/websocket/commodity/{userId} 注意:如果在要进行对象注入,就必须加上 configurator = SpringConfigurator.class。 参考 【spring boot websocket 的使用 - CSDN App】http://t.csdn.cn/XUSQf
2022年05月04日
60 阅读
0 评论
85 点赞
2022-03-04
1.OAuth 的简单理解
OAuth 2.0 的一个简单解释 作者: 阮一峰 日期: 2019年4月 4日 OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。 这个标准比较抽象,使用了很多术语,初学者不容易理解。其实说起来并不复杂,下面我就通过一个简单的类比,帮助大家轻松理解,OAuth 2.0 到底是什么。 一、快递员问题 我住在一个大型的居民小区。 小区有门禁系统。 进入的时候需要输入密码。 我经常网购和外卖,每天都有快递员来送货。我必须找到一个办法,让快递员通过门禁系统,进入小区。 如果我把自己的密码,告诉快递员,他就拥有了与我同样的权限,这样好像不太合适。万一我想取消他进入小区的权力,也很麻烦,我自己的密码也得跟着改了,还得通知其他的快递员。 有没有一种办法,让快递员能够自由进入小区,又不必知道小区居民的密码,而且他的唯一权限就是送货,其他需要密码的场合,他都没有权限? 二、授权机制的设计 于是,我设计了一套授权机制。 第一步,门禁系统的密码输入器下面,增加一个按钮,叫做"获取授权"。快递员需要首先按这个按钮,去申请授权。 第二步,他按下按钮以后,屋主(也就是我)的手机就会跳出对话框:有人正在要求授权。系统还会显示该快递员的姓名、工号和所属的快递公司。 我确认请求属实,就点击按钮,告诉门禁系统,我同意给予他进入小区的授权。 第三步,门禁系统得到我的确认以后,向快递员显示一个进入小区的令牌(access token)。令牌就是类似密码的一串数字,只在短期内(比如七天)有效。 第四步,快递员向门禁系统输入令牌,进入小区。 有人可能会问,为什么不是远程为快递员开门,而要为他单独生成一个令牌?这是因为快递员可能每天都会来送货,第二天他还可以复用这个令牌。另外,有的小区有多重门禁,快递员可以使用同一个令牌通过它们。 三、互联网场景 我们把上面的例子搬到互联网,就是 OAuth 的设计了。 首先,居民小区就是储存用户数据的网络服务。比如,微信储存了我的好友信息,获取这些信息,就必须经过微信的"门禁系统"。 其次,快递员(或者说快递公司)就是第三方应用,想要穿过门禁系统,进入小区。 最后,我就是用户本人,同意授权第三方应用进入小区,获取我的数据。 简单说,OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。 四、令牌与密码 令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异。 (1)令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。 (2)令牌可以被数据所有者撤销,会立即失效。以上例而言,屋主可以随时取消快递员的令牌。密码一般不允许被他人撤销。 (3)令牌有权限范围(scope),比如只能进小区的二号门。对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。 上面这些设计,保证了令牌既可以让第三方应用获得权限,同时又随时可控,不会危及系统安全。这就是 OAuth 2.0 的优点。 注意,只要知道了令牌,就能进入系统。系统一般不会再次确认身份,所以令牌必须保密,泄漏令牌与泄漏密码的后果是一样的。 这也是为什么令牌的有效期,一般都设置得很短的原因。 OAuth 2.0 对于如何颁发令牌的细节,规定得非常详细。具体来说,一共分成四种授权类型(authorization grant),即四种颁发令牌的方式,适用于不同的互联网场景。下一篇文章,我就来介绍这四种类型,并给出代码实例。 (完)
2022年03月04日
118 阅读
0 评论
8 点赞
2022-02-27
判断一个变量是否存在,值是否为空的方法
isset()用来判断一个变量是否存在,返回的是布尔值true或 false。 empty()用来判断一个变量的值是否为空,如果为空则为 true否则为 false。 换句话说, ""、 0、 "0"、 NULL、 FALSE、 array()、 var$var; 以及没有任何属性的
2022年02月27日
93 阅读
0 评论
90 点赞
1
2
3