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

357 天前
 GTallnut
应用场景是桌面 app ,客户端无法连接互联网
以钉钉为例,我构想的流程是:
1.客户端向服务器发起认证请求
2.服务器向钉钉服务器发起 oauth 认证,并将二维码返回给客户端
3.用户扫码成功->钉钉服务器进行认证并在服务器进行页面回调
4.服务器处理回调,通知客户端登录成功

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

大佬们有没有什么解决办法?
1071 次点击
所在节点    程序员
7 条回复
GeekGao
357 天前
事实是:必须要有客户端参与
折衷方案:使用 IAM
实现效果:把钉钉用户同步到 IAM ,由 IAM 统一做内网的认证服务
guyeu
356 天前
感觉是个 xy 问题
GTallnut
356 天前
@GeekGao 感谢回复,但这种折衷方法与我的应用场景不匹配
totoro52
356 天前
完全由服务器处理的是账号密码模式的 oauth 吧? 需要用户提供账号密码或者持久 token
retanoj
356 天前
服务器不经过客户端处理完整的流程,说明服务器掌握了客户端(或者说客户)的认证凭证
SmiteChow
356 天前
你都把二维码给客户端了,怎么又说不经过客户端?

没有外网权限可以用你的服务器反向代理钉钉解决,不要一天到晚想一些 tricky 的方式写代码,规矩点。
GTallnut
356 天前
@SmiteChow 该方案可行,感谢回复

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

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

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

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

© 2021 V2EX