我目前正在开发一个连接到一堆WebAPI的SPA应用程序。这些API要求用户登录,因此我开始查阅Openid Connect和OAuth2示例,主要使用IdentityServer。
由于SPA原因,它们都要求使用隐式授权来检索访问令牌。使用隐藏的iframe连接到身份验证服务器处理令牌刷新。
我对更新访问令牌的方法理解是,会话在认证服务中保持。隐藏的iframe跳转到认证服务器,会话仍然活动,提供新的访问令牌。
这一切看起来对我来说都很好,除了(出于UX方面的考虑)我的用户需要被重定向到认证服务器页面以提供凭据之外。
难道不能让我的SPA应用程序直接将凭据发送到认证服务器,获取访问令牌,然后使用隐藏的iframe进行静默续订(显然我们不希望用户每15分钟或每小时都要输入凭据..)吗。
如果出于安全原因不允许这样做,请解释一下原因。