在我的一些空闲时间里,我试图尝试进入完全堆栈开发领域,我只是对我目前对OAuth2的理解有一些一般性的问题。我是非常绿色的东西,但我看了一些Udemy视频,以获得一个基本的理解。
不管怎样..。我正在做的这个项目,我计划拥有一个定制的授权服务器、一个资源服务器和一个客户端(很可能是SPA)。此授权服务器将只允许授权代码(可能带有PKCE扩展)授予类型。这就引出了我的第一个一般性问题。
直观地,我假设密码授予类型就足够了。正如我已经做了越来越多的阅读,它看起来这个赠款流动不是要走的路。据我所知,使用此流程将要求客户端提供某种形式,以便用户可以登录。这样做可以让客户端访问用户凭据,这大大违背了OAuth2的目的之一。但是,我不确定这是否与我正在开发的内容有关,因为我正在创建授权服务器。我知道通过使用这个授权流,我不是在验证客户端。有人能解释一下这是怎么回事吗?还有什么是我遗漏的吗?我所读到的一切都阻止了我使用这个授权流,这也是我最终决定使用授权代码(w/ PKCE)流的主要原因。
所以..。假设我遵循这个流程,我的客户应该提供一个登录按钮。按此登录按钮将重新引导客户端到网页,在该网页上,资源所有者可以授权客户端并提供用户凭据。然后我的授权服务器将验证这些用户凭据。我计划将用户凭据存储在运行auth服务器的VM上的数据库中。我不打算允许用户注册一个帐户。相反,我将在这个数据库中为我的团队成员提供一个静态的帐户凭据列表。所以我想在创建数据库时,我要插入这些帐户吗?如果是,我如何允许这些用户更改他们的密码?我想我在想,最初这些帐户将被分配一个电子邮件,用户名和随机密码,我可以与他们沟通。但是,我希望用户可以选择将这个随机密码更改为更熟悉的密码。我目前不知道如何在OAuth2实现中执行这样的操作。我是否只是在客户端提供了一种在用户登录时更改密码的方法?如果是这样的话,这是否在某种程度上违背了使用OAuth2的目的,因为我的客户现在已经知道用户凭据了吗?但是,如果我要这样做的话,这是否只是作为对auth服务器上REST的POST请求来实现以更新密码呢?
发布于 2021-11-18 14:42:51
https://stackoverflow.com/questions/70014597
复制相似问题