V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coldmonkeybit
V2EX  ›  程序员

[请教]开放第三方 API 操作涉及具体用户,是否必须维护 session 或 token

  •  
  •   coldmonkeybit · 2022-10-26 16:50:26 +08:00 · 1071 次点击
    这是一个创建于 770 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现状

    • 内部系统
    • 平台方和接入方用户信息同步
    • 接入方通过类似租户的方式,注册在平台方,从平台方获取 appid 和 appSecret 作为合法性
    • 每次请求使用 secret 加密和签名参数

    问题

    因为目前没有 session 和 token 的机制,所以无法辨别调用者的具体身份。
    但是几乎每个操作都涉及用户身份判断,主要是鉴权,例如判断用户是否有权限处理这个信息,目前的做法是让调用方传入用户的 id 作为唯一凭证(因为双方用户是同步的)。
    请教一下,这样做符合规范或者说合理吗。
    如果想维持现状,不维护 session 和 token ,应该怎么做呢?

    5 条回复    2022-10-28 09:03:40 +08:00
    rbe
        1
    rbe  
       2022-10-26 16:58:20 +08:00
    用户信息是同步的,可以考虑 jwt 吧
    coldmonkeybit
        2
    coldmonkeybit  
    OP
       2022-10-26 17:09:16 +08:00
    @rbe 因为调用方是相当于直接在页面上调用我们的接口(他们后端转发一下),没有「登录」这个过程,所以不知道什么时候给他 token 呢
    kalista
        3
    kalista  
       2022-10-26 17:32:19 +08:00
    @coldmonkeybit 我猜楼上意思是你们去使用客户的 jwt ,不过我没这么干过
    xiaoming1992
        4
    xiaoming1992  
       2022-10-27 18:25:39 +08:00 via Android
    或者你们直接模仿一套 jwt ,在平台注册时就把该接入方的相关信息和权限都写入 jwt 中,然后把 token 作为 appSecret 发给接入方,接入方凭此 token 来调用相关服务。
    coldmonkeybit
        5
    coldmonkeybit  
    OP
       2022-10-28 09:03:40 +08:00
    @xiaoming1992 谢谢,现在接入方通过 appId 就可以判断了,但是接入方是作为租户接入的,就像小程序接入小程序平台,但接入方在调用接口时的具体用户信息没办法获取到,现在是让他们在每次调用时直接作为参数传过来的...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5873 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:38 · PVG 10:38 · LAX 18:38 · JFK 21:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.