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

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

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

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

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

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