nodejsは登録ログインを実現
4716 ワード
ユーザー登録ログインの簡単な実装は、まずインタフェースを定義します.userというインタフェースを定義し,act,user,passwordの3つのパラメータを受け入れる.
サーバがクライアントのリクエストを受信するとjsonが返されます
インタフェースの名前は、フロントとバックグラウンドが統一されている限り、任意に定義できます.したがって,ここのactはtypeや任意の文字に置き換えることもできる.具体的には以下の通りです.
htmlファイルが必要です
/user?act=reg&user=abc&pass=123
/user?act=login&user=abc&pass=123
サーバがクライアントのリクエストを受信するとjsonが返されます
{"ok":true,"msg":reason}
{"ok":false,"msg":reason}
インタフェースの名前は、フロントとバックグラウンドが統一されている限り、任意に定義できます.したがって,ここのactはtypeや任意の文字に置き換えることもできる.具体的には以下の通りです.
const http = require("http");
const fs = require("fs");
const querystring = require("querystring");
const urlLib = require("url");
// ,
var users = {};
var server = http.createServer(function(req , res){
//
var str = "";
//POST req.url
//POST ,
// POST
req.on('data' , function(data){
str += data;
});
req.on('end' , function(){
var obj = urlLib.parse(req.url , true);
const url = obj.pathname;
const GET = obj.query;
const POST = querystring.parse(str);
console.log(url,GET,POST);
// user
// user
if(url == '/user'){ //
// get
// POST , POST.act
switch(GET.act){
//
case 'reg':
//
if(users[GET.user]){
// json
//
// , json
res.write('{"ok":false,"msg":" "}');
}else{// ,
users[GET.user] = GET.pass;
res.write('{"ok":true,"msg":" "}');
}
break;
case 'login':
//
if(users[GET.user] == null){
res.write('{"ok":false,"msg":" "}');
}else if(users[GET.user] !== GET.pass){
//
res.write('{"ok":false,"msg":" "}');
}else{
res.write('{"ok":true,"msg":" "}');
}
break;
default:
res.write('{"ok":false,"msg":" "}');
}
res.end();
}else{ //
//
// www
var file_name = './www' + url;
fs.readFile(file_name , function(err , data){
if(err){
res.write('404 is not found!');
}else{
res.write(data);
}
res.end();
});
}
});
});
server.listen(3000 , function(err){
if(!err){
console.log('server is listening 3000 port...');
}else{
console.log(err);
}
});
htmlファイルが必要です
Document
username
password
$(function(){
$("#login_btn").click(function(){
if($("#user").val().length == 0){
return alert("Please input content");
}
if($("#pass").val().length == 0){
return alert("Please input password");
}
$.ajax({
url:"/user",
type:"GET",
data:{
act:"login",
user:$("#user").val(),
pass:$("#pass").val()
},
success:function(str){
var json = eval("("+str+")");
if(json.ok){
alert(" ");
}else{
alert(json.msg);
}
},
error:function(err){
console.log(err);
}
});
});
$("#reg_btn").click(function(){
if($("#user").val().length == 0){
return alert("Please input content");
}
if($("#pass").val().length == 0){
return alert("Please input password");
}
$.ajax({
url:"/user",
type:"GET",
data:{
act:"reg",
user:$("#user").val(),
pass:$("#pass").val()
},
success:function(str){
var json = eval("("+str+")");
if(json.ok){
alert(" ");
}else{
alert(json.msg);
}
},
error:function(err){
console.log(err);
}
});
});
});