我正在开发一个后端(NestJS)和前端(Angular),在安装之后(数据库中没有用户),它允许管理员通过注册表单进行注册。管理员注册后,应用程序不允许其他用户注册,只能由管理员发出邀请。
我正在努力弄清楚Angular应用是如何在运行时识别注册是禁用的,并且不渲染注册表单的。
我认为在1)Angular应用程序做一个HTTPOPTIONS
请求/signup
和后端返回200
或400
,如果它是启用或不启用,但这个解决方案可以搞砸由浏览器的请求由于CORS。或者,2)添加一个端点(例如/signup-enabled
),让Angular应用可以执行GET
,并检查注册是否启用。
我不喜欢上面两个解决方案的一点是,每次Angular应用启动时都会发出一个HTTP请求。
你建议用什么方法来解决这个问题?你知道其他的解决方法吗?
您可以考虑第三种情况。我认为,如果你不想显示一些消息说表单没有启用,因为admin是登录,你可以允许任何用户可以登录,并在你的后端简单返回一个401
,里面有一个特殊的消息说拒绝的原因,你可以显示在你的表单提示。
一般来说,当我需要一个特殊的用例时,我更喜欢使用常见的错误代码和已经存在的端点,然后再创建一个新的。