关于 session 的理解不深入引发的思考?

2019-02-20 09:54:05 +08:00
 missqxy

Restful 模式,用户调我接口。我又调了第三方接口。第三方又回调了我的接口。那我保存 session。是用户浏览器上。还是第三方应用啊。请大家指点一下。

2848 次点击
所在节点    浏览器
9 条回复
otakustay
2019-02-20 10:18:14 +08:00
先说你保存 session 的目的是什么,识别用户登录还是啥的
missqxy
2019-02-20 10:20:11 +08:00
@otakustay 识别用户。
gaius
2019-02-20 10:41:01 +08:00
编号+key
otakustay
2019-02-20 11:24:21 +08:00
@missqxy 对你来说用户的浏览器是客户端,所以客户端有 sessionid 通过 cookie 给你,你的服务里有 session 管理识别出用户
对第三方应用,你是客户端,实际的浏览器第三方是不感知的。所以你也要针对不同的用户,有一个与第三方服务打通的 sessionid,在调用第三方的时候通过 cookie 给过去,第三方有自己的 session 识别
但通常来说,第三方服务不会这样用 cookie 来做用户识别的,它肯定有其它的形式,比如 OAuth,你得研究一下第三方提供给你的接口
missqxy
2019-02-20 13:03:05 +08:00
@otakustay 你可能不理解我的意思。我意思是说如果我保存 SESSION,那么 sessionid 是在用户的浏览器上,还是第三方应用上呢?还是其他答案啊
momocraft
2019-02-20 13:28:54 +08:00
先考虑一下:有 sessionid 可以做什么,你是否希望第三方应用能以完全的用户权限访问你的服务器(以及相反)
nigelvon
2019-02-20 13:30:10 +08:00
session 是手段,关键是你的目的是什么,就上面的信息来说并没有说清楚。
chinvo
2019-02-20 13:30:53 +08:00
如果你要识别第三方那边的回调对应的用户 session,那么你得想办法让第三方回调的时候带上用户 session id,比如回调 Url 里面放 session id,或者第三方如果支持自定义字段那么就放自定义字段里面
missqxy
2019-02-20 14:32:32 +08:00
@momocraft 可以做验证用户信息。我不希望啊。我就是想知道如果我保存 session 后。sessionID 会在用户浏览器上还是第三方。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/536773

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX