在没有第三方的情况下将oauth用于API

时间:2019-01-05 13:24:53

标签: oauth-2.0

我知道OAuth 2在您希望将授权委托给第三方(即someapp.com要访问您的Facebook照片)的情况下非常有用,但是在您只是想使用OAuth的情况下使用OAuth有意义吗有一个没有第三方的RESTful API,并且您想保护端点?还是创建一个产生短暂JWT的/ login端点就足够了?

1 个答案:

答案 0 :(得分:0)

您可以查看客户端消耗资源服务器的情况。在这里,客户端是您的前端,例如移动客户端。资源服务器只是您的RESTful API。使用OAuth 2.0访问令牌消耗资源。这意味着,您的客户端将访问令牌包含在对RESTful API的每个请求中。看看The OAuth 2.0 Authorization Framework: Bearer Token Usage如何做到这一点。

此方法的一个优点是能够替换获取访问令牌的方法。这意味着,最初可能是由内部身份提供者来发布它们。但是,如果您确定自己的身份提供者为Google(允许使用Google进行登录),则此方法仍然有效。它使您的应用程序可以轻松扩展到不同的用户商店(如果您想支持的话)

此外,请考虑具有多个客户端(例如:移动,SPA和本机.Net客户端)的方案。使用访问令牌(基于OAuth 2.0)将建立来自RESTful服务端点的统一接口(它独立于客户端)。这样您就可以开发针对同一服务的不同客户。

(如上所述)替代方法是在登录完成后维护会话。但是随后您将必须登录应用程序的相关逻辑,这会使将来的事情更难更改。