用户Auth - oAuth问题

时间:2016-09-29 19:16:41

标签: node.js authentication express oauth passport.js

我过去做了一个手动应用程序,在客户端$ window.sessionStorage上存储用户令牌。

从那以后我意识到这不安全。我现在正在寻找最安全,最标准的方法来保护使用我将制作的节点/快速后端api的应用程序,并且还使用对此api发出请求的前端,例如针对web或本机移动应用程序的角度。另外,每当我关闭浏览器时,我都必须重新登录,因为$ window的会话存储被清除了。

根据我迄今为止所研究的内容,如果您要进行手动操作,最安全的方法之一是将jwt存储在仅限http的安全cookie中。

但是,我有点想使用已经存在的服务,例如oAuth。情侣问题:

1)oAuth在保持用户群的拥有权方面有多安全?如果3年后oAuth突然或慢慢消失怎么办? Aren的所有用户在技术上都存储在他们的服务器上?我如何将用户保留原来的应用程序?

2)如果我要在与Snapchat,twitter,tumblr等相同的领域创建一个启动应用程序......通常建议使用像oAuth这样的服务来处理我的身份验证吗?当然未来是未知的,但假设最好,我的应用程序将达到数百万用户,使用像oAuth这样的服务仍然是一个明智的选择?看起来,一旦你开始使用oAuth,就不会有任何回到将你的用户存储在你自己的数据库中一两年的事情。

由于

1 个答案:

答案 0 :(得分:0)

OAuth是授权的开放标准。

也许你正在考虑Auth0。有许多服务可以为您处理用户授权,包括Auth0,Stormpath,Apigee,UserApp,AuthRocket或Amazon Cognito。无论您选择哪种方式,请确保您可以从中获取数据库,以防您想要停止使用其服务。不是每个人都明确提供了一种简单的方法来离开他们,但如果这对你很重要,那么确保谁适合你的需要,谁不适合你,并根据你的决定做出决定。

至于OAuth,请参阅https://en.wikipedia.org/wiki/OAuth文章。 维基百科上有一个巨大的list of OAuth providers,但这些是Twitter,谷歌或Facebook等服务。在某种程度上,您可以使用其中一项服务来管理您的所有登录,但只要他们将您视为竞争对手,您就会陷入困境。我听过这样的故事。

关于这个主题的一些有趣的读物: