12下一页
返回列表 发帖
查看: 1466|回复: 16

[求助] 有没有大神知道discuz的cookie的加密机制啊?

43

主题

98

回帖

145

积分

渐入佳境

贡献
0 点
金币
0 个
发表于 2023-4-12 20:06:12 | 显示全部楼层 |阅读模式
我们的一个electron的项目,需要打开discuz网页,然后登录discuz,之后客户端这边想同步登陆这个discuz账号,目前能获得该账号的cookie,但是不知道怎么用这个cookie获得该账号的用户信息,如uid。


所以想请问下这个cookie的加密方式具体是怎样的?客户端除了传cookie值过来,还需要传哪几个参数过来呢?
我知道答案 回答被采纳将会获得1 贡献 已有16人回答
回复

使用道具 举报

12

主题

1608

回帖

2717

积分

Giter

贡献
143 点
金币
353 个
发表于 2023-4-13 01:00:11 | 显示全部楼层
cookie要是在客户端解密那可就坏了,加密就是为了用户那边无法解密啊,直接在用户那边解密,等同于你把最高权限交给用户了。
用户一侧想要获取uid,直接在网页里读discuz_uid这个值就行了。

重要的逻辑一定要在服务器端执行,用户端只负责展示服务器端输出的结果才是最好的。
回复 支持 反对

使用道具 举报

43

主题

98

回帖

145

积分

渐入佳境

贡献
0 点
金币
0 个
 楼主| 发表于 2023-4-14 13:03:38 | 显示全部楼层
专家 发表于 2023-4-13 01:00
cookie要是在客户端解密那可就坏了,加密就是为了用户那边无法解密啊,直接在用户那边解密,等同于你把最高 ...

不是客户端解密,而是客户端把cookie发给后台,后台解密后把解密的结果发给客户端,告知客户端这个用户ID是哪个
回复 支持 反对

使用道具 举报

18

主题

1850

回帖

2837

积分

应用开发者

贡献
54 点
金币
624 个
QQ
发表于 2023-4-14 13:05:14 | 显示全部楼层
electron的项目  打开discuz网页 不需要用cookie

建议流程:1.插件地址 2.自定义生成一共token 3.electron访问这个插件地址 自动登陆
无限星辰工作室  好集导航 免费API
服务Discuz建站|定制|小程序|APP定制|故障维修|搬家|运维|挂马清理|防护|性能优化|安全运维|
服务理念:专业 诚信 友好QQ842062626 服务
回复 支持 反对

使用道具 举报

43

主题

98

回帖

145

积分

渐入佳境

贡献
0 点
金币
0 个
 楼主| 发表于 2023-4-14 13:35:25 | 显示全部楼层
crx349 发表于 2023-4-14 13:05
electron的项目  打开discuz网页 不需要用cookie

建议流程:1.插件地址 2.自定义生成一共token 3.electron ...

这个就相当于自己写一个cookie或者token规则呗
回复 支持 反对

使用道具 举报

18

主题

1850

回帖

2837

积分

应用开发者

贡献
54 点
金币
624 个
QQ
发表于 2023-4-14 14:32:35 | 显示全部楼层
一剑横天 发表于 2023-4-14 13:35
这个就相当于自己写一个cookie或者token规则呗

就是用token 不用cookie
无限星辰工作室  好集导航 免费API
服务Discuz建站|定制|小程序|APP定制|故障维修|搬家|运维|挂马清理|防护|性能优化|安全运维|
服务理念:专业 诚信 友好QQ842062626 服务
回复 支持 反对

使用道具 举报

12

主题

1608

回帖

2717

积分

Giter

贡献
143 点
金币
353 个
发表于 2023-4-14 17:14:22 | 显示全部楼层
一剑横天 发表于 2023-4-14 13:03
不是客户端解密,而是客户端把cookie发给后台,后台解密后把解密的结果发给客户端,告知客户端这个用户ID ...

你这个流程,cookie不需要专门解密,直接带cookie发请求给discuz,返回的信息里就有你要的数据了。
比方说带着cookie随便访问一个discuz的页面,返回的页面里都必然包含uid。不需要特意去请求。
你既然都用网页登录了,还能识别到是否登录,说明你有和网页交互的能力,直接读取网页里的discuz_uid就行了啊,为什么还要单独实现呢?

如果你就是想单独请求一次(没必要),discuz有专门的mobile api,你带cookie去请求api也可以拿到一串json,解码了里面就有你需要的数据。总之不管怎么说这个你是不需要单独实现的。
回复 支持 反对

使用道具 举报

43

主题

98

回帖

145

积分

渐入佳境

贡献
0 点
金币
0 个
 楼主| 发表于 2023-4-14 18:00:57 | 显示全部楼层
专家 发表于 2023-4-14 17:14
你这个流程,cookie不需要专门解密,直接带cookie发请求给discuz,返回的信息里就有你要的数据了。
比方 ...

网页登录后,客户端并无法识哪个用户登录,只能得到他的cookie,然后把cookie给后台,后台得先解密得到用户的uid才能登录,不过目前后台说找到解密cookie的方法了,在测试了,希望能成功吧
回复 支持 反对

使用道具 举报

12

主题

1608

回帖

2717

积分

Giter

贡献
143 点
金币
353 个
发表于 2023-4-14 21:38:12 | 显示全部楼层
一剑横天 发表于 2023-4-14 18:00
网页登录后,客户端并无法识哪个用户登录,只能得到他的cookie,然后把cookie给后台,后台得先解密得到用 ...

你的后台不是discuz框架,而是额外单独做了个程序么?cookie是能解密,但是你这么做不科学,有更合理简单的实现方式。😣
回复 支持 反对

使用道具 举报

43

主题

98

回帖

145

积分

渐入佳境

贡献
0 点
金币
0 个
 楼主| 发表于 2023-4-19 23:37:56 | 显示全部楼层
专家 发表于 2023-4-14 21:38
你的后台不是discuz框架,而是额外单独做了个程序么?cookie是能解密,但是你这么做不科学,有更合理简单 ...

我们现在就是解密后然后传给客户端登录了。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2024-5-18 11:53 , Processed in 0.046926 second(s), 6 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2024 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表