gpt4 book ai didi

javascript - 使用来自前端的 Oauth 密码流程进行身份验证

转载 作者:行者123 更新时间:2023-11-27 23:22:20 25 4
gpt4 key购买 nike

我已经环顾了一段时间,但似乎没有人正确回答这个问题。

假设我有一个“不受信任”的客户端应用程序:一个 AngularJS 前端。该前端想要访问我的 api,因此用户必须首先以某种方式进行身份验证。

因此,如果我使用 oauth 密码流程,用户必须在 HTML 表单中填写其凭据,并且 Angular 应用程序必须发送附加 client_id 和 client_secret 的请求。

我不明白的是,每个人和规范都说 client_secret 必须保密......

这很荒谬,您必须发送 client_secret 进行身份验证,但同时您必须保持 Javascript 不知道它?

所以我的问题是:

如何在不泄露 client_secret 的情况下使用来自不受信任的客户端(Web 前端或移动应用程序)的 oauth 密码流?

这是否可能,或者根本不可能遵守此规范?

最佳答案

您不应使用密码流程,而应使用不涉及 client_secret 的隐式(又名 token )流程。

此流程专为仅限客户端的应用程序而设计,包括您所描述的 JS 前端应用程序。

除了您注意到的问题之外,使用客户端应用程序的密码流还可能会遇到身份验证问题。例如,假设身份提供者使用双因素身份验证,或者可能将身份验证委托(delegate)给另一个提供者。对于密码流程,这是您的应用程序要求用户名/密码的情况,实际上没有办法处理这个问题。另一方面,隐式流包括将流重定向到提供者,这取决于提供者使用任何可用的方式进行身份验证。

从隐式流程中返回的是可以直接从客户端使用的 token 。

关于javascript - 使用来自前端的 Oauth 密码流程进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35289507/

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