1

我正在使用系统浏览器进行身份验证。身份提供者 - Google

脚步

1 - 用户通过输入用户名和密码获得授权。此时我得到了 authentication_code。

2 - 我调用令牌端点并获取访问令牌、id 令牌和刷新令牌。

当 ID 令牌过期时,我需要获取一个新的有效 ID 令牌。我需要在不提示用户输入他的凭据的情况下执行此操作。

问题 - 是否可以在不提示用户的情况下获取新的 id 令牌?根据开放 ID 规范,刷新令牌并不总是返回 ID 令牌并且它不是保证行为

尝试过的解决方案

使用“prompt=none,login_hint=username”调用授权端点。这仍然会重定向到浏览器并返回到应用程序。

有错误的响应

AuthorizationException: {"type":1,"code":1008,"error":"interaction_required"}

4

1 回答 1

1

prompt=none是要走的路;当您收到interaction_required时,表示 Provider 的会话已过期,用户需要重新登录;没有办法解决这个问题,因为您确实需要再次对用户进行身份验证以防止滥用。如果 SSO 会话仍然有效 - 它应该在短时间内有效 - 您将收到新的id_token.

于 2017-07-14T09:54:59.443 回答