nasıl node.js login auth uygulamak
Çalışan bu düğüm server var :
var server=http.createServer(function(request, responsehttp) {
if (request.method == 'POST') {
var body = '';
request.on('data', function (data) {
body = data;
});
request.on('end', function () {
var POST = qs.parse(body);
processquery(POST, request, responsehttp);
});
} else {
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
console.log(query);
processquery(query, request, responsehttp);
}
});
Bu sunucu için bir giriş formu eklemek istiyorum .yani kullanıcı kimliği doğrulandıktan sonra gösterecektir .
function processquery(query, request, responsehttp){
var returnResult = function (data){
responsehttp.end(JSON.stringify(data));
};
if (!query.command) {
fileprocess(request, responsehttp);
}
responsehttp.writeHead(200, {"Content-Type": "application/json"});
switch(query.command) {
case 'logout':
logout(query, returnResult);
break;
case 'login':
login(query, returnResult);
break;
}
}
eğer herhangi bir komut verilmezse olmayan bir süreç içinde sorgu istemci dosyaları döndüren fonksiyon yani ben göndermek oturum açma komut istemci sunucu , server ama ne yapmalıyım ne zaman alıcaksınız oturum açma komut ile kullanıcı adı şifre , nasıl el açma isteği ve dönüş giriş başarısı veya başarısızlığı, yazmak için bu parçaya ihtiyacım var yardım edin .
çalıştım .
function login(request, callback) {
if(request.username==users[request.username] && request.password==users[request.username].password) {
users[request.username].auth=true;
var data = {result:'success','message':'login successful'};
callback(data);
} else {
var data = {result:'error','message':'login incorrect'};
callback(data);
}
}
Lütfen nasıl bu oturum ekleyebilirim eklemeye çalıştım öneririm , giriş fonksiyonu değişken istek ve talep ayarı denedim.oturum değişken istek diyor.oturum tanımsızdır .
Nasıl oturum açma kimlik doğrulaması düzgün her kullanıcı için bakım yapan bu giriş modülü yazabilir öneririm lütfen .
CEVAP
Express.js ile yapıyorum:
1)Eğer kullanıcı kimliği doğrulanmış olup olmadığını kontrol edin: Kullanıcı kimlik doğrulaması için gereken her yolu kullanın: katman bir işlevi CheckAuth verdi
function checkAuth(req, res, next) {
if (!req.session.user_id) {
res.send('You are not authorized to view this page');
} else {
next();
}
}
Bu gibi benim güzergah bu işlevi kullanın:
app.get('/my_secret_page', checkAuth, function (req, res) {
res.send('if you are viewing this page it means you are logged in');
});
2)Giriş yolu:
app.post('/login', function (req, res) {
var post = req.body;
if (post.user === 'john' && post.password === 'johnspassword') {
req.session.user_id = johns_user_id_here;
res.redirect('/my_secret_page');
} else {
res.send('Bad user/pass');
}
});
3)Çıkış yolu:
app.get('/logout', function (req, res) {
delete req.session.user_id;
res.redirect('/login');
});
Eğer express.js kendi sitesinden kontrol hakkında buradan daha fazla bilgi edinmek istiyorsanız: expressjs.com/guide.html Eğer daha karmaşık şeyler için ihtiyacı varsa, everyauth (facebook, twitter vb; iyi eğitimi here kimlik doğrulama yöntemleri mevcut bir yeri vardır) ödeme.
Nasıl güvenli bir DİNLENME node.js API...
Nasıl node.js uygulama hata ayıklama...
Nasıl Node.js komut satırı geçmesi?...
Node.js amacı modülü nedir.ihracat ve ...
Nasıl ayrıştırma kullanarak Node.js JS...