Protected App:(几乎)无需代码给任意 web app 添加 authentication

2024-05-09 16:27:03 +08:00
 logto

大家好! Protected App 是一个基于我们的开源项目 Logto 的新功能。只需填写两个字段,便可以给任意的 web app 添加一层 authentication:

  1. 假设你的 web app 位于 https://foo.app/
  2. Logto Cloud 中,新建一个 Protected App:
    • Origin URL 填写 https://foo.app/
    • App domain 填写 foo
  3. 创建完成后,匿名访问 https://foo.protected.app/ 即会自动跳转到登录页
  4. 最后不要忘记在 https://foo.app/ 中验证发过来的 token (这部分需要写一点点简单的验证逻辑)

Protect App 的优势

欢迎体验,也希望听到大家的建议 😊


3220 次点击
所在节点    分享创造
27 条回复
lekai63
2024-05-09 16:29:13 +08:00
关注 logto 很久了。。然而一直没着手集成到 app 里去~
ktqFDx9m2Bvfq3y4
2024-05-09 16:31:25 +08:00
不就是 oauth2 么
yuezk
2024-05-09 16:59:43 +08:00
听起来像是在 LB 层做了 authentication ,token 通过 HTTP header 传给后面的服务,叫法不一,我们内部叫 trusted authentication 。老牌的 IDP 像 Pingfederate 和 SiteMinder 好像都支持类似的功能,不过可能没有楼主的易用。
grimbedroom
2024-05-09 17:00:43 +08:00
提一嘴,开着 vpn 用谷歌登录,登录了四遍才进去
logto
2024-05-09 17:23:46 +08:00
@grimbedroom vpn 是哪里的节点,出了什么问题呢?我们目前服务器在欧洲,可能会有一些延迟
grimbedroom
2024-05-09 17:29:40 +08:00
@logto 韩国春川,谷歌选择账号后回调到你们的网页,加载了一会就不加载了,重试了三次进入注册流程了,现在退出重新登录没复现了
logto
2024-05-09 17:58:00 +08:00
@grimbedroom 感谢,我们去尝试复现一下
wuyuandev
2024-05-09 18:37:39 +08:00
尝试自托管 logto 以后坚定了自己写登录功能的决心
nicoljiang
2024-05-09 18:44:53 +08:00
@wuyuandev 用了 casdoor 之后也坚定了自己写的决心。
cydian
2024-05-09 20:24:47 +08:00
@nicoljiang 老哥讲讲 casdoor 正准备新项目接入一下试试
logto
2024-05-09 20:27:28 +08:00
@wuyuandev 感谢你的支持
lekai63
2024-05-09 21:00:44 +08:00
@wuyuandev 听起来是贬义啊? 分享分享呗,让我这个一直没行动的 心里有个准备
0o0O0o0O0o
2024-05-09 21:14:41 +08:00
看介绍很喜欢,蹲一下开源
kidlj
2024-05-09 21:19:21 +08:00
很喜欢 Logto ,也尝试集成过,希望开源版能支持多租户,不然国内企业很难用起来(服务器在欧洲)。
xiaohanyu
2024-05-09 21:27:27 +08:00
跟楼上 @wuyuandev 和 @nicoljiang 相反,我是自己先写了 auth ,之后又花时间全部迁移到了 logto ,也是自托管,用了快小半年了,还是非常非常推荐了。

当然,自托管确实还是有一些部署和运维上的复杂性,SRE 方面比较弱的小伙伴们,还是推荐用下 logto cloud ,蛮好的。

写的两篇迁移到 logto 的文章:

- [Introducing the New Auth Flow for PPResume]( https://blog.ppresume.com/posts/introducting-the-new-auth-flow?utm_source=v2ex&utm_medium=xiaohanyu&utm_campaign=logto-protected-app)
- [Introducing Google Sign In for PPResume]( https://blog.ppresume.com/posts/introducing-google-sign-in?utm_source=v2ex&utm_medium=xiaohanyu&utm_campaign=logto-protected-app)

仅供参考哈

---

Protected app 的 idea 蛮好的,个人感觉依照 express middleware 的方式,通过一个 proxy 来抽离出 auth layer ,very smart 。就我个人体验而言,接入 logto 作为一个第三方的 auth server ,因为要同时在前端和后端都验证 auth token ,所以要接入两套 SDK ,还是有些复杂度的。

不过目前看上去 protected app 功能可能还是比较有限,跟 SDK 的接入还是无法对标的。看场景啦。
logto
2024-05-09 21:44:14 +08:00
@xiaohanyu 谢谢你的支持,Protected App 目前更适合快速接入,功能丰富度上暂时比不过 SDK 。好在 Protected App 底层也是 OIDC client ,后期如果有高级需求可以无缝迁移到 SDK 集成。
nicoljiang
2024-05-10 00:08:10 +08:00
@cydian 本身希望非常简单地接入使用,结果还是遇到很多磕磕绊绊。实际使用之后发现整体比较复杂,比较难在短时间搞熟。另外也不排除有一些小问题小 bug ,我们自己还修改了代码,这个时候已经有了一些不满(原本就是为了自己可以不亲自处理这方面的东西),但由于使用场景目前也非常简单,自己修了 2 个 bug 后倒也相安无事,就继续用。

后在使用其他服务需要用到一键登录的需求时,发现又不能直接使用(结果还得自己写了个中转接口)。最后痛定思痛,觉得因为想解决一个小问题引入了一套复杂的东西实在得不偿失,而且连最初的目的都达不到(成为账户中心,方便接入)。
@xiaohanyu 我们也是在自己修了几个小 bug 之后其实也是真切体会到,这套东西实际真的很简单,但之前被一个个的名词和一套套的协议给吓到了。本质就是一个特别简单的东西,不值得引入复杂的不确定性因素。当然使用云服务,有专业支持的话,问题可能不大。现在自己写了,接入什么都很容易实现,灵活度和可靠性大大提高。
pseudo
2024-05-10 12:35:46 +08:00
@nicoljiang 我理解你遇到的问题是和 casdoor 相关的哈,和本帖无关。

此外,通过自己的场景推断某一个事物“简单”未免有些草率了。同样的逻辑可以推断出 Redis 也真的很简单,只是 KV 存储;前端也真的很简单,只是 DOM 操作; Machine learning 也真的很简单,只是给机器喂数据。
doveyoung
2024-05-10 13:42:28 +08:00
最开始我的用法是 foo.app 在 nginx 做 auth 验证拦截,引入 vouch 让 nginx 拥有可以和 OIDC 对接的能力,logto 作为 provider 。

后来发现 logto cloud 有了 protected 还想试试,但是要再去访问 foo.protected.app ,有些时候不想访问别人的域名,而且也不支持 oss 版本,现在已经没这个念想了 emmm

不过 logto 真是一个很好用的项目
nicoljiang
2024-05-10 15:17:20 +08:00
@pseudo 我没说 Logto 和 Casdoor 简单,反而是说:我们的需求很简单,他们太复杂(然后又容易引入一些小问题)所以才决定自己写。

所以这些只和 casdoor 有关吗? logto 是不是已经做得非常健壮、安全、完整了?是否可以支持上有自定义需求的一键登录行为了,我不知道,你知道吗?

现在 rust 都这么普及了,我们自己早就用自研的东西把 Nginx 系、dnsmasq 系这种简单的组件替代掉了,再替换掉 Redis 这种简单的工具替代掉有什么奇怪的吗?

其他的,你就别跟我扯什么耶稣上帝了,跟我没关系,跟你也没关系(你这杠真的有必要抬到把 Redis 一个简单的工具跟整个前端、机器学习这种大生态的行业强行做对比吗?)。

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

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

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

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

© 2021 V2EX