0

mysql でログインできるようにhttps://github.com/jimpick/everyauth-example-password/blob/master/server.jsを修正しました。

でセッションにアクセスしたい

authenticate(function(login, password) {
        var errors = [];
        var user = [];
        userModule.CheckUserLogin(login, password, function(err, results) {
            if(results.length > 0) {
                req.session.login = login;
                return user;
            }
            else {
                if(!user) return ['Login failed'];
            }
        });
        return user;
    })

私はこのコードを一番下に持っています

var app = express.createServer(

    express.bodyParser()
  , express.static(__dirname + "/public")
  , express.cookieParser()
  , express.session({ secret: 'htuayreve' })
  , everyauth.middleware()
);

app.configure(function() {
    app.set('view engine', 'jade');
});

app.get('/', function(req, res) {
    res.render('home', { users: JSON.stringify(usersByLogin, null, 2) });
});

req.session.login アプリコードを下から上に貼り付けると、everyayth のルーティングが機能しません。内部の everyauth 関数にアクセスする方法を簡単に知りたいです。

4

1 に答える 1

1

関数からセッションにアクセスすることはできませんauthenticate。認証されたユーザーの情報へのアクセスをサポートするeveryauthの方法は、認証findUserById中にセッションに保存されるユーザーのIDを指定して、ユーザーレコードを検索する関数をeveryauthに提供することです。これを行うと、を介してルートハンドラー内のすべてのユーザーの属性にアクセスできますreq.user

everyauthWebサイトの「ユーザーへのアクセス」セクションを参照してください。

于 2012-06-07T22:18:40.573 に答える