使用 oauth2/OIDC 不重定向的 sso 登录 - 可能吗?

sso login using oauth2/OIDC without redirects - possible?

我想弄清楚实施 SSO 需要做什么。 所以基本上我正在建造:

a) php 网站 (example.com)
b) android 应用程序 (com.android.example)

网站和应用程序将有一个登录表单 + 社交登录按钮,用于通过 Twitter、FB 等进行身份验证。

我不明白的是 - 人们如何在没有重定向的情况下在站点上实现对 OIDC 服务器进行身份验证的登录表单?如果我理解正确 - OIDC 流程要求将人员重定向到不同的网站进行登录......我如何避免这种情况,以便用户体验无缝地使用我的个人 OIDC 服务器登录(对于其他社交登录,如 google - 我真的不关心重定向)?

如果您已经有一个登录表单并收集了用户凭据,您将能够利用“资源所有者凭据”流程,也就是“密码”授权类型。这是OAuth规范定义的类型,被OIDC继承。

密码授予类型允许 OAuth/OIDC 客户端直接将用户的凭据发送到 OAuth/OIDC 服务器。对于 Web 和本机设备应用程序中受信任的第一方客户端而言,此授权是一种良好的用户体验。

您基本上向 OIDC 服务器的 /accessToken 端点发送请求,提供:

grant_type=password&client_id=ID&client_secret=<SECRET>&username=USERNAME&password=PASSWORD

更多信息请访问:https://www.rfc-editor.org/rfc/rfc6749#section-1.3.3