Authentication 使用oauth2进行静默身份验证(提示=无)

Authentication 使用oauth2进行静默身份验证(提示=无),authentication,oauth-2.0,wso2,Authentication,Oauth 2.0,Wso2,嗨,我有SPA(单页应用程序),我使用oauth2隐式授权进行授权。作为Identity server,我有Wso2 Identity server 5.4.1 我可以授权该应用程序,一切都按预期进行-我还配置为跳过同意 问题来了: 我正试图在…/oauth2/authorize service和属性prompt=none的帮助下,通过以下链接以静默方式重新验证登录用户: https://xxx:9447/oauth2/authorize?response_type=id_token token

嗨,我有SPA(单页应用程序),我使用oauth2隐式授权进行授权。作为Identity server,我有Wso2 Identity server 5.4.1

我可以授权该应用程序,一切都按预期进行-我还配置为跳过同意

问题来了: 我正试图在…/oauth2/authorize service和属性prompt=none的帮助下,通过以下链接以静默方式重新验证登录用户:

https://xxx:9447/oauth2/authorize?response_type=id_token token&nonce=123&prompt=none&client_id=xxxx&scope=openid&redirect_uri=http://localhost:63342/myapp/www/index.html&id_token_hint=previous_user_token
如本文所述,当promp=none时:

我应该能够在用户登录并将同意配置为跳过或始终批准时对其进行身份验证

但我总是在URI中得到相同的错误:

http://localhost:63342/myapp/www/index.html#error_description=Authentication+required&error=login_required&session_state=state124124125125.1251512

此错误表示您的用户未登录到IP。您必须首先让他连接,将其重定向到授权端点,而不将提示参数设置为“无”

见:

需要登录 授权服务器需要最终用户身份验证。当身份验证请求中的提示参数值为“无”时,可能会返回此错误,但如果不显示用于最终用户身份验证的用户界面,则无法完成身份验证请求

根据文档,用户似乎必须在“同意”页面上选择“始终批准”选项。你用这个选项测试过吗

文件:

单击“批准”以同意此操作。屏幕上提到 按名称列出服务提供商并请求用户同意提供 将用户信息发送给特定的服务提供商。用户可以 拒绝向服务提供商提供信息。批准 仅为以下目的向此服务提供商提供用户配置文件信息: 这一次

始终批准以批准共享用户配置文件 与服务提供商的信息,即使在将来没有 再次提示同意


我猜WSO2使用cookie作为会话标识符,您是否检查是否有正确的cookie随
/authorize
请求一起发送?也许您必须在标题上传递客户端id和密码?@Max nope,客户端密码是您在SPA应用程序的客户端上不存储的东西。这将是不安全的。或者,您可以使用signinSilent()。检查:您好,我写过,我已将同意配置为跳过,这意味着始终批准。。。当我尝试重新授权时,用户已经登录…是的,问题是需要设置“始终批准”的同意