gpt4 book ai didi

Meteor.js - 使用密码保护模板

转载 作者:行者123 更新时间:2023-12-04 04:34:46 27 4
gpt4 key购买 nike

我的 Meteor.js 应用程序应该包含密码保护功能。注册用户可以为 Collection 中的某个对象设置一个密码,然后公共(public)用户应该使用该密码进行身份验证才能访问该对象模板。

我想知道最好的方法是什么?

到目前为止的想法:

--生成唯一的auth token,保存到客户端的Session对象中。在客户端上使用此 token 来确定是否应显示密码表单而不是实际的对象模板

--原始密码仅在服务器端可用,并在服务器端适本地加了盐和胡椒

问题:

--我需要一个服务器端 API,客户端可以在其中查询用户尝试访问的当前对象的密码。你如何在 Meteor 中做到这一点?

--定义每个对象的密码并将其与对象一起存储。这真的很令人困惑 - 密码需要发送到服务器,而不是存储在客户端上,然后加盐并与 protected 对象一起存储在服务器上。

最佳答案

最好的办法是

在客户端上有一个可见的模板(原始 HTML,但没有任何敏感数据),例如,如果它是私有(private)区域,则可能链接到下载或有关帐户的数据。

第二种是使用作用域 Meteor.publish功能。因此,您将(假设下载链接)存储在服务器上的集合中,然后以如下方式发布它:

服务器端js:

var DownloadLinks = new Meteor.Collection("downloads");

Meteor.publish("collection", function() {
//Only a logged in user will get the data
if(this.userId) return DownloadLinks
});

您的客户端:

您可以安装一个包,例如 accounts-uiaccounts-password快速开始

你的 HTML
<!-- Buttons to log in -->
{{loginButtons}}

{{#if currentUser}}
<h1>Private Section</h1> - <p>Only visible if you're logged in</p>
{{/if}}

你的客户端js
DownloadLinks = new Meteor.Collection("downloads");

Meteor.subscribe("collection");

所以这里用户只能访问 DownloadLinks 中的内容。如果他们已登录,则收集。“私有(private)部分”只有在您登录时才可见。如果黑客试图阅读它,他们仍然无法访问下载链接,因为服务器不会发布它们,直到用户已登录。

关于Meteor.js - 使用密码保护模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19932983/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com