OAuth2 - 我应该使用什么授权?

OAuth2 - What grant should I use?

我想弄清楚要为我的 application/saas 使用哪个 OAuth2 授权。或者如果 OAuth2 是正确的方法。

应用程序:

该应用程序的目的是与电子商务结合使用。所以我想要的是让用户访问我的网站并注册一个帐户。创建帐户后,应向用户提供凭据,he/she 可使用凭据获取访问令牌和刷新令牌。访问令牌应提供对用户 OWN 资源的访问,最好使用范围来限制访问。用户应该能够 get/post/put 和从 his/her 帐户中删除内容,就像在提供的管理 (SPA) 中工作一样。 他们不必通过 OAuth 重定向流程,因为他们将使用来自其服务器的 API。

我的想法

首先,我考虑申请 Client Credentials 补助金。但后来我发现它不会提供对用户及其资源的访问。 我开始倾向于使用 资源所有者凭据 授权。但我不太相信我的用户会选择强密码。而且在我能找到的几乎所有文档中,每个人似乎都不推荐使用此补助金。

也许OAuth 不适合我的项目?也许我应该买一些 API 可以用来交换访问令牌的密钥?

有什么想法and/or输入吗?

我有一个 link 可能对你有用。

Link: https://github.com/lucadegasperi/oauth2-server-laravel/blob/master/docs/authorization-server/choosing-grant.md

得出的结论是 OAuth2 不适合我的情况。

最后我选择了基于 JWT 的自定义解决方案。