小编lag*_*lex的帖子

如何用护照保护快递中的静态文件夹

我有一个基于快递的项目,需要基于护照的身份验证.

后台是一个angularjs应用程序作为静态文件.

我的身份验证代码完全基于https://github.com/jaredhanson/passport-local/blob/master/examples/express3-no-connect-flash/app.js

如果您未经过身份验证,则不要提供角度应用程序.我尝试在/ admin路由上添加ensureAuthenticated,但它使路由不起作用(404).一旦我删除了EnsureAuthenticated,就会提供/ admin.

app.use(express.static(path.join(__dirname, 'public')));
app.use('/admin', ensureAuthenticated, express.static(path.join(__dirname, 'admin')));
//serve routes
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)

公用文件夹包含登录页面.

我怎么能实现这个目标?

node.js express passport.js

27
推荐指数
3
解决办法
2万
查看次数

使用Angular&Express登录用户的正确方法是什么?

我正在构建一个简单的网站,我想让用户使用Facebook登录,然后根据他们是否登录显示包含自定义项目的页面.即如果没有登录,它会显示一些信息,但如果登录,它会根据用户信息显示其他信息.

我正在使用passportjs Facebook模块,Express和Angular.我相信我已正确实施护照,但不知道1)我应该如何检查用户是否登录,以及2)使用Angular&Express根据用户状态显示视图的最佳实践.我在这里看了一个例子,但是不要认为这是我应该用Angular做的事情(https://github.com/jaredhanson/passport-facebook)

谢谢!

express angularjs passport.js

26
推荐指数
1
解决办法
3万
查看次数

在批处理的输入参数中转义"双引号"

我想在批处理脚本中运行以下内容,它需要一个参数(路径)

runas /user:abc "icacls %1 /grant Everyone:(F) /T"
Run Code Online (Sandbox Code Playgroud)

但是参数%1已经包含了一个" (因为它是一个路径,由上下文菜单的Send To传递 - 我对此没有多少控制权).因此,当命令在批处理脚本中运行时,它会像这样运行:

runas /user:abc "icacls "c:\folder" /grant Everyone:(F) /T"
Run Code Online (Sandbox Code Playgroud)

所以显然我需要逃避由它"创建的s %1.如何执行字符串操作%1以使其转义引号?

windows batch-file

22
推荐指数
2
解决办法
5万
查看次数

Nodejs Passport验证未调用回调

使用Nodejs Passport,我正在测试使用以下代码发生错误情况时会发生什么:

passport.use(new LocalStrategy(
  function(username, password, done) {
    // asynchronous verification, for effect...
    process.nextTick(function () {
      findByUsername(username, function(err, user) {
    console.log('in auth function');
      return done('errortest');
        if (err) { return done(err); }
        if (!user) {
          return done(null, false, { message: 'Unknown user ' + username });
        }
        if (user.password != password) {
          return done(null, false, { message: 'Invalid password' });
        }
        return done(null, user);
      })
    });
  }
));

app.get('/logintest', function(req, res, next) {
console.log('before authenticate');
  passport.authenticate('local', function(err, user, info) {
console.log('authenticate …
Run Code Online (Sandbox Code Playgroud)

node.js passport.js

22
推荐指数
2
解决办法
2万
查看次数

NodeJS Passport

我在nodejs上设置了护照,并让它与m​​ongoose一起工作,允许用户登录并创建新帐户.

app.js:

var express = require('express')
  , app = module.exports = express.createServer()
  , passport = require('passport')
  , LocalStrategy = require('passport-local').Strategy
  , routes = require('./routes/index')(app) //index loads in multiple routes
  , MongoDBConnection = require('./database/DatabaseConnector').MongoDBConnection;

// Configuration
app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.cookieParser());
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.session({ secret: 'justdoit' }));
  app.use(passport.initialize());
  app.use(passport.session());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

var mongoDbConnection = new MongoDBConnection();

passport.serializeUser(function(user, done) {
    done(null, user.id);
});

passport.deserializeUser(function(id, done) {
    mongoDbConnection.findUserById(id, function(err, user){
       done(err, user);
    });
});

passport.use(new LocalStrategy( …
Run Code Online (Sandbox Code Playgroud)

mongoose node.js passport.js

22
推荐指数
2
解决办法
1万
查看次数

Git弄乱了我的文件,在某些地方显示了汉字

免责声明:Git,我的意思是'我'搞砸了.

此前,我想git-gui给我看diff的这它认为是二进制文件.

所以我对我做了一些改动 .\.gitattributes

*.ini       text
*.inc       text
Run Code Online (Sandbox Code Playgroud)

但它没有用. 然后,我做了一些改变,以我的.\.git\info\attributes

*.ini       text
*.inc       text
*.inc crlf diff
*.ini crlf diff
Run Code Online (Sandbox Code Playgroud)

它起作用了.

但现在当我回到之前的承诺时,它会搞砸......

中国文字应该是这样的: 英文字符

它不会发生在所有文件中.编辑:它只发生在其中包含任何特殊字符的文件中.

问:这是提交本身的问题还是只是一些设置?
问:我能恢复吗?

git unicode gitattributes

22
推荐指数
2
解决办法
7182
查看次数

更新会话中登录的用户详细信息

我正在使用PassportJS和ExpressJS.

我需要更新登录的用户详细信息.虽然我在数据库中更新了这个,但是如何在会话中更新它,以便request.user包含更新的用户详细信息?

也就是说,在更新数据库之后,如何更新用户的会话信息?

我尝试直接分配更新的详细信息,request.user但它没有用.然后我尝试了request.session.passport.user- 这有效但是在request.user中更新之前还有大约5到10秒的延迟.

是否需要调用一个函数来更新存储在会话中的用户信息?或者是否有一些其他对象我可以更新,其中更改没有延迟

node.js express passport-local passport.js

22
推荐指数
1
解决办法
7726
查看次数

Passport-twitter:无法在会话中找到请求令牌

就在昨天在Heroku上我开始在twitter上登录快递时出现此错误

Error: failed to find request token in session
    at Strategy.<anonymous> (/app/node_modules/passport-twitter/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth.js:120:54)
    at Strategy.authenticate (/app/node_modules/passport-twitter/lib/passport-twitter/strategy.js:82:40)
    at Passport.authenticate (/app/node_modules/passport/lib/passport/middleware/authenticate.js:153:14)
    at callbacks (/app/node_modules/express/lib/router/index.js:272:11)
    at param (/app/node_modules/express/lib/router/index.js:246:11)
    at pass (/app/node_modules/express/lib/router/index.js:253:5)
    at Router._dispatch (/app/node_modules/express/lib/router/index.js:280:4)
    at Object.handle (/app/node_modules/express/lib/router/index.js:45:10)
    at Context.next (/app/node_modules/express/node_modules/connect/lib/http.js:204:15)
    at Context.<anonymous> (/app/node_modules/passport/lib/passport/context/http/actions.js:64:8)
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

javascript node.js passport.js

21
推荐指数
3
解决办法
1万
查看次数

持有护照,mongodb和快递的会议

我正在使用护照来处理我的应用程序中的身份验证和会话.我正在使用mongostore坚持使用mongodb.

设置工作正常.但是,当我重新启动服务器时,所有用户都被注销,因此显然会话被保留在内存中而不是仅保留到mongodb.我正在尝试实现用户在重新启动服务器时仍然登录的设置.

基本配置如下

中间件

    app.use(express.cookieParser('your secret here'));
    app.use(express.session());
    app.use(passport.initialize());
    app.use(passport.session({
        maxAge: new Date(Date.now() + 3600000),
        store: new MongoStore(
            {
                db: mongodb.Db(
                    conf.mongodbName,
                    new mongodb.Server(
                        'localhost',
                        27017,
                        {
                            auto_reconnect: true,
                            native_parser: true
                        }
                    ),
                    {
                        journal: true
                    }
                )
            },
            function(error) {
                if(error) {
                    return console.error('Failed connecting mongostore for storing session data. %s', error.stack);
                }
                return console.log('Connected mongostore for storing session data');
            }
        )
    }));
Run Code Online (Sandbox Code Playgroud)

护照

passport.use(new LocalStrategy(
    {
        usernameField: 'email',
        passwordField: 'password'
    },
    function(email, password, done) {
        console.log('user %s attempting …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js express passport.js

19
推荐指数
1
解决办法
2万
查看次数

Passport - Node.js没有返回刷新令牌

我试图使用node.js的passport模块返回一个refreshToken.但是我使用下面的代码,我无法记录任何刷新令牌,但访问令牌工作正常.有没有办法为这个模块指定脱机访问类型,希望能够返回这个?

var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
 passport.use(new GoogleStrategy({
 clientID: GOOGLE_CLIENT_ID,
 clientSecret: GOOGLE_CLIENT_SECRET,
 callbackURL: "http://myurl/auth/callback"
 },
 function(accessToken, refreshToken, profile, done) {                                                            
  console.log(refreshToken);
  process.nextTick(function () {
      return done(null, [{token:accessToken}, {rToken:refreshToken}, {profile:profile}]);
  });
}
));
Run Code Online (Sandbox Code Playgroud)

这会将refreshToken返回为undefined.

任何帮助将不胜感激.

javascript node.js oauth-2.0 passport.js

19
推荐指数
2
解决办法
4748
查看次数