使用令牌保护REST API的标准方式是什么?

这是我想要做的:

我有使用REST API提供数据的服务器,但是我只希望我的移动客户端(APP)能够访问它。

我想使用一个类似的系统,用户可以创build一个电子邮件/密码login。之后,用户可以使用API​​访问某些数据。

OAuth2是正确的使用?

或者我只是尝试创build我自己的协议,并为用户生成一个令牌。 并让用户在所有API请求上附加一个令牌。 (这是我困惑的地方,我可以使用OAuth吗?或者甚至是需要的?如果不是,有一个标准的HTTP方式来做到这一点?我也想使用刷新令牌,但我不知道如果我应该创build我自己的方法。

OAuth2可能是最好,使用最广泛的解决scheme。 我会去那个。

实施自己的authentication/授权协议几乎总是在灾难中结束,除非您对密码学和底层协议有非常深入的了解。

注意OAuth不是一个authentication协议 – 这似乎是你所需要的 – 而是一个授权协议。 您的服务器是请求OAuth提供商提供的资源的客户端 – 是您需要的吗? 我觉得不是。

你需要的是一个authentication协议 – 通常通过发送一些令牌来处理每个请求 – 并且由@Julian passport.js提到似乎正在做你需要的工作。

基本上远离实施定制解决scheme。 你真的需要广泛的知识来实现​​可靠和安全的authenticationscheme。

JSON Web令牌也可能是一种好的方法。

如果客户端应用程序仅由您开发,则不需要OAuth。 仅当您希望允许第三方客户端应用程序以受限特权访问(您的服务)的用户数据时,才需要OAuth。

相关问题:

  1. 了解oauth 2.0中客户端id的需求,客户端秘密
  2. 如何validation每个用户可以使用OAuth和OpenID Connect访问哪些资源?
  3. OAuth 2.0授权服务器和访问令牌

但是,如果将来可能希望允许第三方客户端应用程序访问您的系统,那么从一开始就实施资源所有者密码凭证授予 (这是OAuth 2.0stream程之一)可能是明智的做法未来的可扩展性。