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

Oauth 认证是否可以完全由服务端处理

  •  
  •   GTallnut · 2023-12-04 17:26:44 +08:00 · 1081 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。
    应用场景是桌面 app ,客户端无法连接互联网
    以钉钉为例,我构想的流程是:
    1.客户端向服务器发起认证请求
    2.服务器向钉钉服务器发起 oauth 认证,并将二维码返回给客户端
    3.用户扫码成功->钉钉服务器进行认证并在服务器进行页面回调
    4.服务器处理回调,通知客户端登录成功

    现在的难点是
    之前的 2 3 中服务器怎么不经过客户端处理完整的流程(访问 api 网址,获取二维码返回客户端,保持页面等待钉钉服务器回调)

    大佬们有没有什么解决办法?
    第 1 条附言  ·  2023-12-05 11:26:10 +08:00
    此贴已结束,确实如评论说的是 xy 问题,抱歉耽误各位时间
    GeekGao
        1
    GeekGao  
       2023-12-04 17:34:53 +08:00
    事实是:必须要有客户端参与
    折衷方案:使用 IAM
    实现效果:把钉钉用户同步到 IAM ,由 IAM 统一做内网的认证服务
    guyeu
        2
    guyeu  
       2023-12-05 00:02:25 +08:00 via iPhone
    感觉是个 xy 问题
    GTallnut
        3
    GTallnut  
    OP
       2023-12-05 08:34:25 +08:00
    @GeekGao 感谢回复,但这种折衷方法与我的应用场景不匹配
    totoro52
        4
    totoro52  
       2023-12-05 08:44:02 +08:00
    完全由服务器处理的是账号密码模式的 oauth 吧? 需要用户提供账号密码或者持久 token
    retanoj
        5
    retanoj  
       2023-12-05 09:43:20 +08:00
    服务器不经过客户端处理完整的流程,说明服务器掌握了客户端(或者说客户)的认证凭证
    SmiteChow
        6
    SmiteChow  
       2023-12-05 11:14:06 +08:00   ❤️ 1
    你都把二维码给客户端了,怎么又说不经过客户端?

    没有外网权限可以用你的服务器反向代理钉钉解决,不要一天到晚想一些 tricky 的方式写代码,规矩点。
    GTallnut
        7
    GTallnut  
    OP
       2023-12-05 11:24:03 +08:00
    @SmiteChow 该方案可行,感谢回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1022 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:39 · PVG 04:39 · LAX 12:39 · JFK 15:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.