![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
node
龙龙老表
分享日常课件与学习心得!
展开
-
JWT 认证
基于传统的 cookie 、session 认证的一些问题session 一般存储在应用的内存中,随着用户数量增加,服务端内存开销也比较大【这里也推荐使用 redis】如果是分布式服务应用,想要共享数据还得有一台中央服务器,这样会限制负载均衡的能力CSRF【跨站请求伪造】,只要截获 cookie ,用户信息很容易暴露再一个问题是,cookie 是可以在浏览器端设置的,一旦用户不小心禁用了 cookie ,那他可能再也登录不了系统了。基于 token 的鉴权token 的鉴权原创 2020-06-08 23:07:16 · 775 阅读 · 0 评论 -
再聊跨域
CORS 【跨域资源共享】// 当然可以指定域名访问(通配符存在安全问题)// 但是这种跨域方式是不可以携带凭证的( withCredentials )res.setHeader("Access-Control-Allow-Origin", "*");CORS 跨域拿不到 cookie// serverconst http = require("http");const fs = require("fs");http .createServer((req, res) =>原创 2020-06-08 13:40:13 · 152 阅读 · 0 评论 -
服务端主动推送数据、长连接
EventSource服务端主动推动数据EventSource 是服务器主动向客户端推送数据的一个网络事件接口。一个 EventSource 实例会对 HTTP 服务开启一个持久化的连接,以 text/event-stream 格式发送事件, 会一直保持开启直到被要求关闭。服务端// node 的实现// 单边通讯,服务器主动推送客户端const fs = require("fs");const http = require("http");let server = http.cr原创 2020-06-07 00:27:21 · 823 阅读 · 0 评论 -
Buffer 和 Stream
BufferBuffer 是二进制数据,只不过呈现形式采用了两位的 16 进制创建 指定 字节的 Bufferlet buf = Buffer.alloc(10);通过字符串创建 Bufferlet buf = Buffer.from("hello world");通过 16 进制创建 Bufferlet buf = Buffer.from([ 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f,原创 2020-06-05 23:51:03 · 377 阅读 · 0 评论 -
fs 模块
文件相关针对文件的所有操作而言,没有加 Sync 的都是异步操作引入模块const fs = require("fs");如果没有该写入的文件,会自动创建该文件flag a : 追加写入 w : 覆盖写入// 将 hello world 这个字符串写入文件fs.writeFile("001.txt", "hello world", { flag: "a" }, function (err) { if (err) throw err; console.log("写入成功原创 2020-06-05 21:36:33 · 145 阅读 · 0 评论