V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ns09005264  ›  全部回复第 2 页 / 共 6 页
回复总数  109
1  2  3  4  5  6  
67 天前
回复了 junwind 创建的主题 程序员 大佬们好, JWT 如何防止多端登录 ?
https://gateway.pinata.cloud/ipfs/QmWv2NmD5iLVTsSo3QkEsGnHKxtQqMoeZZTs76ohGz1aHC

图里这个 jwt token 是在 linux 下 firefox 中登录时生成的,如果用户把这个 token 拿到 windows 上的 chrome 去用,只需要获取请求头中的 user-agent 就可以判断它是异端登录。整个过程依旧是无状态的,根本不需要在服务器的什么地方维护用户的登录和设备信息。
67 天前
回复了 junwind 创建的主题 程序员 大佬们好, JWT 如何防止多端登录 ?
我觉得,jwt 最大的意义是自带信息。

生成 jwt token 的时候除了必要的用户信息外,还可以加上登录时的设备信息,比如 ip 、user-agent 或其他识别信息等。这样 jwt token 里就包含设备信息了。
后续验证 jwt token 时,看它的请求头里和 jwt token 包含的信息是否对应得上,对不上就是多端使用 jwt token 了

比如该用户在 PC 浏览器上登录了,服务器为此生成了 jwt token ,这个 token 中包含的 user-agent 是 pc 的。
后面该用户把 jwt token 复制到 Android 浏览器上用来使用,但是请求头中的 user-agent 和 jwt token 里的对应不上,那么就是异端登录了。
有种方式可以将多维坐标线性化,用一维数组表示空间信息
https://docs.rs/ndshape/latest/ndshape/

体素游戏一般都有 chunk 概念,chunk 就是线性化坐标数组,加上 chunk 本身也有 3 维坐标,也可以将坐标线性化。
所以你说的二维坐标可能是二维数组的索引吧。
78 天前
回复了 bddxg 创建的主题 Linux 想转 manjaro 但是有几个问题困扰着我
推荐装 ArcoLinux ,注意是 Arco 。相比 ArchLinux ,它的安装程序可以帮你解决一些最基本但你可能不清楚的问题,比如字体、剪切板、蓝牙、网络管理等。
关于你的需求,1-3: 我不知道在 linux 上有没有这些比较全面的软件的替代品,根据 unix 哲学,你可以通过一系列软件组合达到类似的效果,就是很麻烦。
nvim 的这个功能是 bufferline.nvim 这个插件带来的。https://github.com/akinsho/bufferline.nvim
vim 对应的插件不知道应该是 buftabs.vim 吧。
```javascript
let f;
if (flag()) {
f = () => {
foo();
bar();
};
} else {
f = () => bar();
}
for (let i = 0; i < length; i++) {
f();
}
```
123 天前
回复了 FrankAdler 创建的主题 程序员 求教一个正则的写法
@ns09005264 倒数第二行没法了,只能用额外的判断了。
123 天前
回复了 FrankAdler 创建的主题 程序员 求教一个正则的写法
[img]https://i.imgur.com/3hEsvJ0.png[/img]

这个咋样
```
((第|s|season)\s*(\d+).*?季?)?(第|e|ep)\s*(\d+)
```
group3 就是季,group3 是空的就是第一季
group5 就是集
132 天前
回复了 Authorization 创建的主题 程序员 我用 chatgpt 写了一个密码网站
这让我想到一个问题,
一个不会编程的人通过询问 GPT 来实现需求所花的时间,和另一个直接去学习编程然后通过 Github Copilot 来实现需求所花的时间,这两者谁更有性价比。
所以你花了多久写的这个?
135 天前
回复了 lynan 创建的主题 分享发现 来说说你们认为信达雅的翻译吧
战锤四神
Khorne: 恐虐
Tzeench: 奸奇
Slaanesh: 色孽
Nurgle: 纳垢
中文译名与祂们的背景相当同步。
不知道历史缘由,个人觉得向下移动比向上移动频繁,而食指比中指更灵活,强强联合。
我用 vim 做文件[批量]重命名的,配合 lf 之类的终端文件管理器选择文件,然后在 vim 中进行操作就可以了,想用正则用正则,想用 V-Block 多行编辑就用。
由于它是基于 mv 命令进行命名的,所以可以做到给不同文件夹里的文件们同时重命名,或者将一个文件夹里的文件分发到不同的文件夹。
通过管道符导入到其他接受 stdin 的程序里试试,比如 vim 。像这样: ffmpeg command | vim ,vim 里没有输入就不是 stdin
164 天前
回复了 Dosenf 创建的主题 程序员 快被 IPV6 逼疯了
openwrt 设置 ipv6 ,有篇文章讲的比较详细,可以让你知道为什么这么设置。
https://post.smzdm.com/p/awzodmpp/
他讲了一些 Ipv6 分配相关的知识。
7890 这个端口太有名了,公网上开这个端口应该很容易就被扫到,而且也没有加密,随便谁在自己电脑上设置一下 http_proxy=http://你 IP:7890 就能拿你电脑当代理服务器了。
166 天前
回复了 yaott2020 创建的主题 Linux 你倾向于哪个 Linux 桌面发行版?
Arcolinux+Hyprland
对比 Go 我想不出有什么大的缺点,对比 Rust 的话,就是 null 的存在,空指针异常挺烦人的。还有 Enum 挺弱的。
要不试试 firefox ,因为可以通过 css 自定义界面,可以搞 url 和标签栏合并、无界之类的。具体可以看 r/firefoxCSS 。
edge 似乎有个内部通道特性,上次看到有人的 edge 定制的非常简洁。不知道怎么搞的。
我感觉可以,虽然网页功能是受浏览器限制的,但是本地服务不受限,网页和本地服务通过 WebSocket 通信,网页发送指令给本地服务,由本地服务来进行系统交互,比如列出文件列表。
其实就是纯粹的前后端分离,有一些本地软件就是这样的架构,LF 文件管理器似乎就是。还有 bspwm 是通过 bspc 客户端进行几乎所有的操作,如果给 bspc 包装一层网络服务,感觉可以在浏览器里对 bspwm 进行操作。
224 天前
回复了 SkyLine7 创建的主题 Java jwt 如何做在线踢人功能?
我有个想法,那就是做和 session 相反的事,即:把要踢的用户保存在内存里。
具体是这样的:
用户改了密码或者要踢某个用户下线,就把该用户的 ID 保存到内存里,因为要踢下线的人一般都是少数,费不了多少空间。
当然要设置保存期限,和 JWT 的过期时间一样就行。
比如用户改了密码,就把他的 ID 保存到内存里,当他依然用旧令牌访问时,后端从旧令牌中解析到他的 ID 并与内存中的列表比对,如果存在就令牌失效,需要登录,同时删除列表里的 ID 。
如果他改了密码,但再也没有登录过刷新令牌,那么也无妨,因为内存中的列表过期也会清理的。
简单来讲,因为 JWT 对后端服务是无状态的,但可以在后端增加“踢人列表”这一点点不怎么占用资源的状态。
以上没有考虑分布式的情况,因为我没有分布式的经验。分布式的“登录与验证服务”应该也是单机的服务吧?
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2882 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 11:20 · PVG 19:20 · LAX 04:20 · JFK 07:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.