我们有asp.net core
(v3.0) Web API 后端(尚无身份验证)。前端将是一个 SPA( React
)。前端基本上是一个管理面板,这意味着网站的主页应该只是登录页面。我们计划使用IdentityServer4
for auth(单独的项目)。如果我们创建IdentityServer4
项目( MVC
),它将有自己的登录表单/页面。由于打开我们的客户端网站(react)登录表单应该打开,popout 和 iframe 不是我们考虑使用的方式,实现这一点的最佳方法是什么?
我已经做了一些研究,IdentityServer4
如果客户端设置为ResourceOwnerPassword
流,似乎可以在react客户端中制作我们的登录表单并将用户登录名和密码发送到。但是,这不是一种安全且推荐的方式。我在 SO 和很多文章中阅读了很多问题,但这些已经过时了,并且IdentityServer4
'repo' 中的大多数样本已被弃用。
问题:
我们正在考虑的另一种方式是,在主页加载时,只需重定向到 IdentityServer4 登录页面 (MVC),然后在登录后重定向回我们的网站。这是正确的做法吗?用户会看到重定向还是因为用户打开我们的网站并且看起来像主页,所以不会有太大区别?
GrantType
对于这种情况,我应该使用什么类型的?Hybrid
?是否可以制作像 in 的自定义登录页面
React
?实施它的最佳方法是什么?
感谢您的任何建议,如果问题重复,我很糟糕,因为我花了几天的时间来解决这个问题,但无法解决。
编辑: 现在,带有 JavaScript 客户端的 IdentityServer4 在 IdneityServer4 官方存储库中可用:https : //github.com/IdentityServer/IdentityServer4/tree/master/samples/Quickstarts/4_JavaScriptClient
另外,我克隆并稍作更改,因此 IdentityServer4 和 WebApi 位于一个项目中:https : //github.com/Jamaxack/IdentityServerSPA