gpt4 book ai didi

oauth - 如何将 OAuth 与单页面应用程序集成?

转载 作者:行者123 更新时间:2023-12-03 06:37:34 26 4
gpt4 key购买 nike

使用 OAuth (2) 时,我的应用程序中需要一个重定向端点,一旦我通过身份验证,OAuth 提供的服务就可以重定向到该端点。

如何在单页应用程序中处理此问题?当然,重定向到 OAuth 提供的服务在这里并不好,甚至可能无法重定向回来。

我知道 OAuth 还支持基于用户名/密码的 token 生成。这与 AJAX 调用完美配合,但需要我的单页应用程序询问用户名和密码。

您通常如何处理这个问题?

最佳答案

大多数时候,即使对于 SPA,重定向也是可以的,因为用户不喜欢将他们的 X 服务凭证放在 X 之外的任何其他网站上。另一种方法是使用一个小的弹出窗口,您可以检查 Discourse做。恕我直言,重定向比弹出窗口更好。

Google 一些提供商支持 resource owner flow,这就是您所描述的发送用户名和密码,但这并不好。这些是我看到的问题:

  1. 对于某些用户来说,向您网站上的用户询问 Google 凭据是不可能的。
  2. 资源所有者流也需要 client_secret,并且您不得将其放入客户端 JavaScript 中。如果您从服务器端应用程序实例化资源所有者流,并且您的应用程序与用户不在同一地理区域,则用户将收到警告“嘿,有人正在尝试使用您来自印度的凭据进行访问”。

OAuth 描述了一个名为 implicit flow 的客户端流。使用此流程,您不需要在服务器端进行任何交互,也不需要 client_secret。 OAuth 提供程序使用“#access_token=xx”重定向到您的应用程序。之所以称为隐式,是因为您不需要为每个访问 token 交换授权代码,而是直接获得 access_token。

Google 实现隐式流程,检查:Using OAuth2 for Client-Side apps

如果您想对某些不支持隐式流程的提供商(例如 Github)使用隐式流程,您可以使用身份验证代理,例如 Auth0

免责声明:我为 Auth0 工作。

关于oauth - 如何将 OAuth 与单页面应用程序集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21451172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com