2016-07-26 42 views
0

因此,我编写了一个平台来管理考试。考试存储在mongodb中,并通过REST访问。该视图没有在该服务器上实现,而是在另一个server.js上运行。确保没有视图的MEAN/NodeJS应用程序

我的客户:

var express = require('express'); 
var app = express(); 

app.use(express.static(__dirname + '/public')); 

app.listen('7777'); 

和我的服务器:

var express = require('express'); 
var path = require('path'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var cors = require('cors'); 

var klausuren = require('./routes/klausuren'); 
var users = require('./routes/users'); 

var app = express(); 

var mongoose = require('mongoose'); 

mongoose.connect('mongodb://localhost/notenplattform'); 
var db = mongoose.connection; 

db.on('error', function callback(){ 
    console.log("Fehler bei Verbindung zu MongoDB!"); 
}); 

db.once('open', function callback(){ 
    console.log("Verbindung zu MongoDB Erfoglreich!"); 
}); 

app.use(cors()); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/klausuren', klausuren); 
app.use('/users', users); 

// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// error handlers 

// development error handler 
// will print stacktrace 
if (app.get('env') === 'development') { 
    app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: err 
    }); 
    }); 
} 

// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
    message: err.message, 
    error: {} 
    }); 
}); 


module.exports = app; 

我的问题是:我如何能保护客户端和服务器?我在网上找到的所有解决方案都需要基本设置节点JS,其中视图由服务器本身提供,而不是在自己的客户端脚本中。

我真的不知道如何通过Passport和其他解决方案来实现这一点,过度使用谷歌也没有帮助。对于初学者的问题抱歉!先谢谢你!

+0

您可以使用https://auth0.com/ – Jay

回答

2

只要使用JWT(json web token),使用此工具,您可以在用户进行身份验证时生成令牌,而无需担心会话。

  1. 当用户试图登录你从数据库
  2. 验证用户名/密码为用户生成一个令牌,并将其发送给他
  3. 用户发送此令牌在每个请求,你想成为私人为登录的用户,然后你确认它是否是有效的

如果你想要更多的信息看看Authenticate a Node.js API with JSON Web Tokens它有一个简单但有用的教程,希望有所帮助。

相关问题