假设我有一个REST API和一个在AngularJS中独立的前端。
如何使用Oauth 2登录此用户而不重定向并要求“授权应用程序”等?
基本上我想做的是:
但在每个Oauth 2流程示例中,我都会看到重定向URL部分具有应用程序的授权,并将用户发送到其他位置。但我的AngularJS应用程序本身就是应用程序。
我不打算使用Google / Facebook或任何其他提供商。用户数据库和oauth服务器托管在API本身上。
那么这种情况下的正确流程是什么?
答案 0 :(得分:2)
使用OAuth,流程要求您通过特定提供商的页面登录。例如,使用SSO(例如,Facebook),您将通过本地Facebook登录进行登录。这样做是出于安全原因(故意没有详细说明,因为我对安全性的影响不够了)。
有一个名为Auth0的图书馆我们已经取得了一些成功。它使用OAuth。基本上,它提供了两种实现:重定向(就像你在谈论的)或“弹出”模式,它基本上处理A中的认证A)后台弹出窗口(在电子邮件/密码认证的情况下)或B)前景中的弹出窗口(例如Facebook或Instagram登录)。
我认为OAuth对于SSO的情况很有用,或者如果使用像Auth0这样的提供商(管理您的用户数据库,因此需要通过 Auth0进行身份验证)。
但是,如果您不想使用像Auth0这样的外部提供商,并且您没有使用SSO,我不明白您为什么要在应用中尝试实施OAuth流程。< / p>
通常只需将JWT存储在您自己的数据库中并与每个用户一起进行身份验证即可。