• 请不要在回答技术问题时复制粘贴 AI 生成的内容
GTallnut
V2EX  ›  程序员

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

  •  
  •   GTallnut · Dec 4, 2023 · 1752 views
    This topic created in 908 days ago, the information mentioned may be changed or developed.
    应用场景是桌面 app ,客户端无法连接互联网
    以钉钉为例,我构想的流程是:
    1.客户端向服务器发起认证请求
    2.服务器向钉钉服务器发起 oauth 认证,并将二维码返回给客户端
    3.用户扫码成功->钉钉服务器进行认证并在服务器进行页面回调
    4.服务器处理回调,通知客户端登录成功

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

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

    没有外网权限可以用你的服务器反向代理钉钉解决,不要一天到晚想一些 tricky 的方式写代码,规矩点。
    GTallnut
        7
    GTallnut  
    OP
       Dec 5, 2023
    @SmiteChow 该方案可行,感谢回复
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2757 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 05:07 · PVG 13:07 · LAX 22:07 · JFK 01:07
    ♥ Do have faith in what you're doing.