我是新来的网站身份验证,我一直在做大量的阅读,你可以使用不同类型的用户身份验证(例如会话与令牌身份验证)。但是,它看起来比我需要的要多,而且我不确定哪些适合我的事业。如何着手为网站创建临时身份验证?
我的想法是生成临时用户帐户和密码,这些帐户和密码将在第一次使用后过期。我希望将其与我的网站集成在一起,以便他们有机会查看受限制的页面,之后他们将不再允许访问这些部分(除非提供新的凭据)。
任何方向在正确的步骤将不胜感激。
更新:我使用Javascript(节点)作为我的服务器端语言
我是新来的网站身份验证,我一直在做大量的阅读,你可以使用不同类型的用户身份验证(例如会话与令牌身份验证)。但是,它看起来比我需要的要多,而且我不确定哪些适合我的事业。如何着手为网站创建临时身份验证?
我的想法是生成临时用户帐户和密码,这些帐户和密码将在第一次使用后过期。我希望将其与我的网站集成在一起,以便他们有机会查看受限制的页面,之后他们将不再允许访问这些部分(除非提供新的凭据)。
任何方向在正确的步骤将不胜感激。
更新:我使用Javascript(节点)作为我的服务器端语言
基于会话的认证实际上是非常轻量级的,如果您使用的是节点的后端,由于大部分(如果不是全部)的Web服务器库支持“中间件”,它们在请求路由功能之前修改请求。 Express-compatable中间件client-sessions对此非常棒,我以前在一个项目中使用它,取得了巨大的成功。它会在用户向您的网站发出的第一个请求中添加一个cookie,以识别它们,并且如果在某个时刻登录,您可以将该会话标记为已验证,存储会话信息以及与其相关的其他数据。
假设你想同时登录&注销,最简单的方法将是使用通过HTTPS POST到login
& logout
路线。在登录路径的分辨率内部,您只需在与您一起工作的任何数据库中“标记为删除”即可。
一个例子可能是这样的:
var app = express();
function authenticate(user, pw){
//do your application specific login verification here
}
function deleteAccount(user){
//do your application specific user removal here
}
app.use(require("express-session")({
secret : "YOUR-SECRET-KEY-HERE"
cookieName : "Session"
//any other desired config options go here
})
app.post("/login", function(req, res){
var user = req.body.user;
var pw = req.body.pw;
req.Session.isAuthenticated = authenticate(user, pw)
if(req.Session.isAuthenticated){
markForDeletion(user, pw);
}
res.write("logged in as: " + user);
res.end();
});
app.post("/logout", function(req, res){
deleteAccount(req.Session.username);
req.Session.username = "";
req.Session.isAuthenticated = false;
res.write("logged out!");
res.end();
});
谢谢!这是一个很好的开始! – Jain
哪个服务器端语言是您使用? – Nitin
@Nitin我正在使用JavaScript(节点) – Jain