2015-04-06 90 views
3

因此,我有一个基于Sails.js框架的Node.js服务器,并成功实施了passport.js,其方式如下:如何在用户登录时“记住”用户-passport.js-phonegap

(登录)POST/auth/local:如果验证返回ID,用户名和电子邮件地址。

(注册)POST/auth/local/register:当注册时返回ID,协议,哈希密码,用户ID和accessToken。

现在在我的phonegap(离子框架)中,我需要保留一些数据,以便在用户每次打开应用程序时自动创建登录请求。我曾经将护照和用户名保存在本地,但我知道它是一个非常系列的安全漏洞。

我应该使用更安全的localStorage吗?我应该用吗?我应该保存用户ID吗?请清除这个问题给我。

回答

1

首先,如果您不知道您应该阅读oatuh 2.0协议文档。但我警告你,它可能相当复杂,你如何实现它,这取决于你。

这是包PHP,但在它的wiki它总结得很好四种补助金,您可以使用OAuth的实现:

  • 授权代码授予
  • 隐性补助
  • 资源拥有者证书授予
  • 客户端证书授予

在你的情况下,我认为Resource Owner Password Credentials Grant已经足够了,但是再一次,这取决于你。

我发现这两NPM包,也许可以帮你node-oauth20-providerSails-OAuth2-API

+0

我采用这种封装形式:https://www.npmjs.com/package/sails-generate-auth和IM相当满意。这似乎是做这项工作,我不想得到另一个2天头痛实施另一个图书馆,除非它的必要。但我没有得到答案,我应该如何将localStorage数据保存在我的phonegap应用程序中。保存用户标识(UUID)是否安全?还是必须获得令牌并保存它。 – 2015-04-06 16:41:36

+0

保存令牌,该令牌是您在每个请求上传递的内容,您可以将其发送到标题上。现在在您的服务器端,您可以管理该令牌,通过管理我可以随时阻止它,设置权限等。即使您不想花时间实施新库,也可以查看oauth流我认为这可能会帮助您创建您的登录流。每当你的用户发送他的凭证,他就会得到一个令牌。这就是你存储在你的应用程序中。 – 2015-04-06 17:13:51

+0

这种方法存在两个问题:我使用的库是将用户名和电子邮件保存在'用户'集合中,并在'护照'集合中保存密码,协议,用户ID,访问令牌。当我登录时,用户数据不是令牌......我可以用ID来做另一个请求来获得令牌,但是我该怎么做呢?如果我要使用令牌方法,我还必须构建一个搜索令牌用户数据的操作。保存用户ID是否不安全?它会简单得多 – 2015-04-06 18:14:51

相关问题