1

接続を永続化するスクリプトを作成するのを手伝ってくれませんか。jsftp node モジュールを使用して ftp サーバーに接続しました。私がする必要があるのは、ユーザーがリクエストを送信するたびに、ユーザーがすでに認証されているかどうかを確認することです。前もって感謝します!ここに私のコードがあります:

var Ftp = require('jsftp');

var dumpLog =  function (event){
        console.log('Code: '+ event.code);
        console.log('Message: '+ event.text);
}

var FtpController = {

    index : function (req , res) {
        res.view('ftp/login');
    },

    auth : function (req , res){

        // Initialize some common variables
        var user = req.param('user');
        var pass = req.param('pass');

        var ftp = new Ftp({
            host: req.param('host'),
            port: req.param('port') // Defaults to 21
        });

        ftp.auth( user, pass, function (err , auth_res){
            if (err) throw err;

            dumpLog(auth_res);
        });

        res.view('ftp/folder');
    },

    serve_folder : function(req,res){
        res.view('ftp/folder');
    },

};
module.exports = FtpController;
4

1 に答える 1

0

アプリを構築するときにさまざまなコントローラーにチェックを適用できるようにする必要があるため、このようなことを行うための最良の方法はおそらくポリシーです。ポリシーは次のようになります。

// policies/ftpAuthenticated.js
module.exports = function loginToFTP (req, res, next) {
  if (req.session.ftpAuthenticated) {
    // Onward!
    next();
  }
  else {
    // authenticate here (we assume it works in this example)
    var success = true;
    if (success) {
      // Track that the user is connected via ftp for next time
      req.session.ftpAuthenticated = true;
      // save the connection object
      req.session.ftp = theFTPConnectionThing;
      next();
    }

    // if an error occurs, use the default error handler
    else {
      next( new Error('Sorry, an error occurred authenticating with FTP') );
    }

  }
}
于 2013-08-17T19:31:18.130 に答える