3

嗨,我是Meteor的新手,我想知道Meteor.user对象内部生成的hashedToken的用法。流星内部hashedToken的用途是什么?用户

在流星文档中解释的服务对象,

由特定登录服务所使用的包含数据。例如,其重置字段包含忘记密码链接使用的令牌,其恢复字段包含用于保持您在会话之间登录的令牌。

当我检查本地存储时,Meteor.loginToken看起来与hashedToken不同。

所以我的问题是, 1.在本地存储中生成的Meteor.loginToken和在服务对象内生成的hashedToken之间的区别是什么? 2.为什么服务对象内的resume.loginTokens是一个数组?

任何帮助表示赞赏...

回答

1

所以一个loginToken是可以类似于一个cookie标记的计算机上留下一串字符。您不希望在计算机上留下实际的用户名和密码,而是使用令牌。

该令牌随后用于向服务器进行身份验证并登录以代替用户名/密码。

由于您可以同时在多台设备上登录,因此阵列中有多个设备。每个人都有自己的标志。

令牌散列的原因是数据库安全性的额外度量。客户端上的令牌被SHA256散列,并与已经散列的数据库上的令牌相匹配,以尝试自动登录用户。

它们被哈希的原因是没有人可以使用它们作为loginToken localStorage表单以通过从数据库中复制并作为localstorage logintoken粘贴它作为特定用户登录。它类似于可以用来登录用户的明文密码。

+0

您提到该标记是数组中的多个标记,因为您可能有许多浏览器或多个会话。每个人都有自己的标记'。因此,如果创建了许多令牌,那么将使用哪个令牌进行身份验证 – 2015-02-24 17:07:49

+0

@gopinathshiva每次登录(通过在中输入凭据),都会创建一个新令牌。如果您的浏览器未登录,或者您登录的每台计算机都会创建一个单独的计算机,并且登录时会为您登录的每台计算机创建新的登录令牌。列出的任何令牌都可以正确登录,因为您可以同时在多台计算机上登录。 – Akshat 2015-02-24 17:32:17

+0

@gopinathshiva你对loginTokens的意图是什么,也许我可以提供一个特定的答案,你想要使用他们的? – Akshat 2015-02-24 17:37:15