我正在设计一个API。它只能由我们自己制作的SPA使用。
但是,我已经花了两天时间来阅读如何实现Oauth2.0的授权代码流程。而且,它似乎打算用于要让第三方客户端访问某些用户资源的场景。
我对此不感兴趣。
此流量足以满足我的需求吗?
我读得越多,我就越迷路。
答案 0 :(得分:1)
如果API是您SPA的后端,则最简单的方法是将Auth Code Flow与后端一起用作OAuth2客户端。后端发起身份验证请求,接收身份验证代码,将其交换为令牌。然后,后端可以创建具有所有可用身份验证和授权信息的会话。 SPA将获得一个标识会话的cookie。有一个很好的文档OAuth 2.0 for Browser-Based Apps-描述了最佳做法。
如果您需要无状态后端,则可以在SPA中使用“身份验证代码流”。您仅使用PKCE而不是客户密码。然后,您可以使用访问令牌作为API的授权。可以使用刷新令牌或带有&prompt=none
的身份验证请求来刷新访问令牌。有关更多信息,请参见this article。
如果您创建自己的/login
端点来接受用户凭据并通过OAuth2服务器进行验证,则会失去一些好处-您的应用程序(SPA和后端)将可以使用敏感数据(凭据)安全问题。而且您将无法使用OAuth2服务器的单一登录(SSO)功能。