SPA + API服务器+第三方OAuth身份验证

时间:2018-11-15 00:52:42

标签: authentication oauth oauth-2.0 jwt single-page-application

说我们有SPA,OAuth服务(Google或FB或Linked in)和一个将SPA服务到客户端的应用程序服务器(我们的API)。

我们的SPA通过客户端对第三方的OAuth进行身份验证,例如Google或链接或FB,使用的方法被称为“隐式流程”。通过传递额外的步骤返回访问令牌。 现在,我们如何使用此访问令牌与我们的API通信。它们是分离的。

这时,客户端应用(SPA)具有令牌和我们从第三方OAuth获得的FB | GOOGLE | LINKEDIN user_id。

现在可以说我们正在向服务器发出GET请求,它必须是经过身份验证的请求。我们如何使用从OAuth获得的令牌

1)我们是否使用从OAuth获得的令牌从SPA到我们的APP服务器(我们的api服务器)进行API调用,并且这次我们再次使用相同的令牌从APP服务器重新对OAuth服务进行了另一次调用并确保它是一个有效的令牌,然后从该令牌创建一个JWT并将jwt用于以下api调用。

2)或者我们使用FB | GOOGLE | LINKEDIN实现标准的服务器端OAuth实现,并在身份验证后将访问令牌保存在该用户的服务器端,并将SPA提供给客户端,并将从OAuth服务器获得的访问令牌传递给客户端给客户。现在,该令牌可用于后续对API调用的调用。

3)或者我们使用FB | GOOGLE | LINKEDIN实现标准的服务器端OAuth实现,并在身份验证后将访问令牌保存在该用户的服务器端并提供给SPA,但这一次创建JWT并将其提供给客户端和客户端现在可以使用JWT进行后续调用。

我不知道正确的方法是什么。或者,即使这是使用OAuth和SPA进行身份验证的好方法,因为Implicit Grant显然不是一个好方法。

0 个答案:

没有答案