最近,我成立了凯迪公司,以代理我在互联网上的所有服务。为了保持所有的组织,我第一次开始使用NodeJS来呈现一个带有指向所有服务的链接的定制主页。问题是,我希望在主页级别实现一个登录sistem,并对用户进行身份验证,这样他就可以连接到由Caddy代理的所有服务。
我的想法是实现一个基于cookie的登录系统,并不断更新,这样对于站点的每个端点,只有执行有效授权cookie的用户才能访问。
我在网上查看了如何创建登录系统,并发现了一些使用passportjs和本地策略的资源,我不知道如何从这些资源中创建令牌和授权coockies。我发现了一个名为passport的库,但我需要在每次登录时都有一个授权cookie列表,以将其提供给Caddy,并保护节点不受控制的端点。我怎么能这么做?
发布于 2021-04-13 11:58:33
要实现你的目标,有几种选择:
保护您的服务的最简单的解决方案是basically,它基本上告诉用户浏览器询问用户名和密码,然后发送到服务器。
https://caddyserver.com/docs/caddyfile/directives/basicauth
即使设置起来非常快,您也会失去一些好处,比如精细的访问控制和用户更改用户名/密码的能力。
OAuth允许用户使用自己的帐户登录,例如从谷歌或Facebook登录。看看这个完整的卡迪奥斯系统:https://github.com/greenpau/caddy-auth-portal
最后,如果您想利用这个挑战作为学习机会,可以查看基于JWT的身份验证。看看这个模块:https://github.com/greenpau/caddy-auth-jwt
这将使您能够在node.js应用程序中发出JWT令牌,然后由Caddy进行验证。
显然,所有这些解决方案确实需要一些研究和技巧,我将把它们按升序执行的难度打分,而您构建自己的Auth系统的计划是最困难的。
https://stackoverflow.com/questions/67073130
复制相似问题