我正在为预订平台构建一个网络应用程序,我正在使用 oauth2 来使用他们的API并验证用户。我的应用程序嵌入在我无法控制的另一个名为“X”的网站中。当用户点击我的应用程序时,它会加载https://localhost/?_account_id=12
到一个 iframe 中,该 iframe_account_id=12
是它自己在 X 网站中的帐户 ID。
我正在使用 oauth2授权代码流,以便用户批准我的应用程序。
我正在安全地存储授权服务器提供的刷新令牌。
我将account_id
参数存储在会话中。
授权服务器不支持著名的prompt=none
.
这是我第一次使用 oauth2,所以也许我没有正确理解 oauth2 的工作原理。
由于安全性,我不能只依赖_account_id
参数,因此每次连接到我的应用程序时,我都需要对用户进行身份验证。这样做,每次会话到期时,应用都会提示用户批准我的应用。
对于 X 中可用的其他应用程序,我永远不会被提示重新批准这些应用程序。因此,在分析它们时,每次我连接到其他应用程序时,我的浏览器的网络开发工具都会列出这一点:
204
https://other_app_provider/fr/admin?_account_id=12
302
https://other_app_provider/auth/?_account_id=12
302
https://authorization_server/oauth/authorize?_account_id=12&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&scope={SCOPES}&state={STATE}
302
https://other_app_provider/auth/bookingsync/callback?code={CODE}&state={STATE}
200
https://other_app_provider/admin
我再说一遍,授权和回调之间没有批准屏幕。
我的问题:如何使用授权码流或隐式流静默认证用户?换句话说,如何模仿上述行为?
谢谢你的回答!
精慕HU
婷婷同学_