【发布时间】:2020-04-16 13:50:38
【问题描述】:
我们有asp.net core(v3.0) Web API 后端(还没有授权)。前端将成为 SPA (React)。
前端基本上是一个管理面板,这意味着网站的主页应该只是登录页面。我们计划使用IdentityServer4 进行身份验证(单独的项目)。如果我们创建IdentityServer4 项目(MVC),它将有自己的登录表单/页面。由于打开我们的客户端网站(react)登录表单应该是打开的,popout 和 iframe 不是我们考虑使用的方式,最好的方法是什么?
我做了一些研究,如果客户端设置为ResourceOwnerPassword流,似乎可以在反应客户端中制作我们的登录表单并将用户登录名和密码发送到IdentityServer4。但是,这不是一种安全且推荐的方式。我已经阅读了 SO 中的很多问题和很多文章,但是那已经过时了,并且大多数示例都在 IdentityServer4 的 repo 中已被弃用。
问题:
我们正在考虑的另一种方式是,在主页加载时,只需重定向到 IdentityServer4 登录页面 (MVC),登录后重定向回我们的网站。这是一种正确的做法吗?用户会看到重定向还是因为用户打开我们的网站并且它看起来像主页所以不会有太大区别?
在这种情况下我应该使用哪种类型的
GrantType?Hybrid?是否可以像
React那样制作自定义登录页面?实现它的最佳方式是什么?
感谢您的任何建议,如果问题重复,我会很遗憾,因为我花了几天时间才弄清楚但无法解决。
编辑: 现在,IdneityServer4 官方仓库中提供了带有 JavaScript 客户端的 IdentityServer4:https://github.com/IdentityServer/IdentityServer4/tree/master/samples/Quickstarts/4_JavaScriptClient
另外,我克隆并做了一点改动,所以 IdentityServer4 和 WebApi 在一个项目中:https://github.com/Jamaxack/IdentityServerSPA
【问题讨论】:
-
非常感谢您花时间编辑您的问题并添加 github 示例。谢谢
标签: reactjs asp.net-core asp.net-core-webapi identityserver4