以下是我要做的事情:
我有使用REST API提供数据的服务器,但我只想让我的移动客户端(APP)访问它。
我想使用类似的系统,用户可以在其中创建电子邮件/密码登录。之后,用户可以使用API访问某些数据。
OAuth2是正确使用的吗?
或者我只是尝试创建自己的协议并为用户生成令牌。并让用户在所有API请求上附加令牌。 (这是我感到困惑的地方。我可以使用OAuth吗?或者甚至需要使用OAuth?如果不是,有一种标准的HTTP方式可以做到这一点吗?我也想使用刷新令牌,但是我'我不确定如果我应该创建自己的方法。
答案 0 :(得分:1)
OAuth2可能是最好和最广泛使用的解决方案。我会选择那个。
实施您自己的身份验证/授权协议几乎总是以灾难告终,除非您对加密和底层协议有非常深入的了解。
答案 1 :(得分:0)
请注意,OAuth不是身份验证协议 - 这似乎是您所需要的 - 而是授权协议。您的服务器是请求OAuth提供商拥有的资源的客户端 - 您需要的是什么?我猜不是。
您更需要的是身份验证协议 - 通常通过每次请求发送一些令牌来实现 - @Julian passport.js提到的似乎正在完成您需要的工作。
基本上远离实施自定义解决方案。您真的需要广泛的知识来实现可靠和安全的身份验证方案。
JSON网络令牌可能也是一种方式。
答案 2 :(得分:0)
如果客户端应用程序仅由您开发,则不需要OAuth。仅当您希望允许第三方客户端应用程序以受限制的权限访问(您的服务)用户数据时才需要OAuth。
相关问题:
但是,如果您可能希望将来允许第三方客户端应用程序访问您的系统,那么实施Resource Owner Password Credentials Grant可能是明智的,OAuth 2.0是https://docs.angularjs.org/api/ng/directive/ngOptions之一从一开始就为未来的可扩展性而流动。