我可以在REST API上提供一些帮助。我正在编写一个使用Express,MongoDB并在客户端具有Backbone.js的Node.js应用程序。最近两天,我一直在努力解决所有问题,但运气不佳。我已经签出了:
我希望后端和前端尽可能分开,所以我认为使用精心设计的REST API会很好。我的想法是,如果我打算开发一个iPhone应用程序(或类似的东西),它可以使用API来访问数据。
但是,我希望这是安全的。用户已登录我的Web应用程序,并且我想确保我的API安全。我阅读了有关OAuth,OAuth 2.0,OpenID,Hmac,哈希等的信息...我想避免使用外部登录(Facebook / Twitter / etc),我希望在我的应用程序/服务器上进行注册和登录。
...但是我还是很困惑。也许是在深夜或我的大脑被炸了,但是我真的可以在这里做些什么。创建安全API的步骤是什么?
任何帮助,任何信息,任何示例,步骤或任何东西都将是不错的。请帮忙!
这是一种不同的思考方式:
让我们暂时假设您没有使用API。您的用户登录到该应用程序并提供了一些凭据,然后您向该用户提供了cookie或类似的令牌,用于标识该用户已登录。然后,该用户请求包含受限信息的页面(或创建/修改/删除它),因此您检查此令牌以确保允许用户查看该信息。
现在,在我看来,您唯一要更改的就是信息的传递方式。而不是将信息作为呈现的HTML传递,而是将信息作为JSON返回并在客户端呈现。您对服务器的AJAX请求将携带与以前相同的登录令牌,因此我建议仅检查该令牌,并以相同的方式将信息限制为“恰好允许用户知道”。
您的API现在和您登录时一样安全-如果有人知道访问api所需的令牌,那么他们也将登录到该站点,并且无论如何都可以访问所有信息。最好的一点是,如果您已经实现了登录,那么您实际上并不需要做更多的工作。
诸如OAuth之类的系统的重点是通常通过第三方应用程序并以开发人员的身份提供这种“登录”方法。对于iPhone应用程序或类似应用程序来说,这可能是一个很好的解决方案,但这已成为未来。接受不止一种身份验证方法的API没错!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句