小编lag*_*lex的帖子

如何在批处理中检查文件是否为空

google有几种方法可以检查文件是否为空,但我需要做相反的事情.

If (file is NOT empty)

do things
Run Code Online (Sandbox Code Playgroud)

我怎么批量做?

windows batch-file

14
推荐指数
3
解决办法
5万
查看次数

我可以使用html5本地存储来存储用户身份验证会话信息

快速背景:

我正在编写一个Mongo/Express/Angular/Node SPA并使用护照我已经设置了OAuth登录选项来处理用户身份验证/授权.

使用护照我在服务器上成功维护会话,因此我的所有XHR请求(需要它)都在检查登录用户.

在登录服务器时,将基本用户会话信息放入cookie中供客户端在授权回调中查找,然后我使用angular-cookies'$ CookieStore访问客户端上的cookie,将其保存到rootscope并清除cookie .

问题:

除了用户刷新浏览器的任何事件之外,这是完美的工作,这导致我的rootcope会话显然被擦除.

所以我正在考虑将会话信息存储在浏览器本地存储中(使用store.js),然后即使在初始加载时我也可以检查浏览器本地存储中存在的会话,如果已经有会话则绕过OAuth登录.

这是不好的做法,还是在浏览器本地存储中存储用户会话信息时存在一些后勤/安全问题?

此应用程序没有任何敏感数据,注册是免费的,登录实际上只有那里,所以我可以跟踪用户并存储在应用程序中为每个用户创建的数据.并且用户会话永远不会有密码(我只允许OAuth登录没有本地选项).

session local-storage node.js angularjs passport.js

14
推荐指数
1
解决办法
4789
查看次数

NodeJS中的无状态认证库

我相信RESTful API的最佳实践是无状态.我读过关于无状态身份验证的abit,但我不完全清楚如何实现它(看起来像一堆令牌等).PassportJS是一个很好的身份验证库,但它不是无状态的?是否有某种库可以帮助我创建无状态API(带身份验证)?我想使用像谷歌,Twitter等一样的SSO(单点登录),所以如果图书馆为我处理这个(就像PassportJS那样)会很好.

authentication stateless single-sign-on node.js passport.js

14
推荐指数
2
解决办法
4565
查看次数

本地主机上的护照谷歌oauth

我很擅长使用护照进行身份验证,因此需要大量的代码片段

我的服务器配置为:

var router = require('./app/config/routes');
var googleStrategy = require('./app/config/passport');
var session = require("express-session");

var passport = require('passport');
app.use(session({secret : '<secret-key>'}));
app.use(passport.initialize());
app.use(passport.session());
googleStrategy(passport); 
Run Code Online (Sandbox Code Playgroud)

我的路由配置为

module.exports = function(app, passport) {

    app.get('/auth/google', function() {
        passport.authenticate('google', {scope: ['profile', 'email']});
    });

    app.get('/auth/google/callback', function() {
        passport.authenticate('google', {
            successRedirect: '/profile',
            failureRedirect: '/fail'
        });
    });

    .... ALSO configured /profile and /fail
};
Run Code Online (Sandbox Code Playgroud)

我的护照配置为

passport.serializeUser(function(user, callback){
        console.log('serializing user.');
        callback(null, user);
    });

    passport.deserializeUser(function(user, callback){
       console.log('deserialize user.');
       callback(null, user);
    });

    var processRequest = function(token, refreshToken, profile, callback){
        process.nextTick(function(){
           console.log('id …
Run Code Online (Sandbox Code Playgroud)

node.js oauth-2.0 express passport.js

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

req.session.passport为空,未调用deserializeUser - ExpressJS,Passport

我在Passport/ExpressJS中使用会话时遇到问题.

当我登录时req.session,我可以看到护照是{}:

{ cookie: 
 { path: '/',
  _expires: Mon Sep 29 2014 19:37:16 GMT-0300 (BRT),
  originalMaxAge: 3594522,
  httpOnly: true,
  secure: true },
passport: {} }
Run Code Online (Sandbox Code Playgroud)

此外,我正在使用Facebook进行身份验证,并且passport.deserializeUser没有被调用.这是我的代码:

    passport.use(new FacebookStrategy({

    // pull in our app id and secret from our auth.js file
    clientID        : configAuth.facebookAuth.clientID,
    clientSecret    : configAuth.facebookAuth.clientSecret,
    callbackURL     : configAuth.facebookAuth.callbackURL

},

// facebook will send back the token and profile
function(token, refreshToken, profile, done) {

    // asynchronous
    process.nextTick(function() {

        console.log("profile " + profile.id);
        console.log("profile.name "+profile.name.givenName) …
Run Code Online (Sandbox Code Playgroud)

session node.js express passport.js

13
推荐指数
2
解决办法
6960
查看次数

ES6箭头功能是否与Angular不兼容?

这是我的Angular代码中的普通ES5函数,它可以工作:

app.run(function($templateCache){ $templateCache.put('/some','thing') });
Run Code Online (Sandbox Code Playgroud)

我想将它转换为ES6箭头功能

app.run($templateCache => $templateCache.put('/some','thing'));
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

Uncaught Error: [$injector:unpr] Unknown provider: '/some'Provider <- '/some'
http://errors.angularjs.org/1.4.6/$injector/unpr?p0='%2Fsome'Provider%20%3C-%20'%2Fsome'
REGEX_STRING_REGEXP  @ angular.js:68
(anonymous function) @ angular.js:4287
getService           @ angular.js:4435
(anonymous function) @ angular.js:4292
getService           @ angular.js:4435
invoke               @ angular.js:4467
(anonymous function) @ angular.js:4297
forEach              @ angular.js:336
createInjector       @ angular.js:4297
doBootstrap          @ angular.js:1657
bootstrap            @ angular.js:1678
angularInit          @ angular.js:1572
(anonymous function) @ angular.js:28821
trigger              @ angular.js:3022
eventHandler         @ angular.js:3296
Run Code Online (Sandbox Code Playgroud)

ES6箭头功能是否与Angular不兼容?


编辑:我想也许Angular无法推断名称$templateCache,因此无法注入它,但后来我将其记录到控制台,它确实显示正确:

app.run($templateCache=>console.log($templateCache));
// => 
//  Object {}
//      destroy: function() …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs ecmascript-6 angularjs-injector arrow-functions

13
推荐指数
1
解决办法
4023
查看次数

找不到模块'passport-local'错误

我在node.js中使用护照

在我的app.js

var passport = require('passport')

require('./config/passport').boot(passport, config)
Run Code Online (Sandbox Code Playgroud)

在passport.js

var LocalStrategy = require('passport-local').Strategy
Run Code Online (Sandbox Code Playgroud)

运行应用程序,我收到此错误消息

module.js:340
    throw err;

error:Cannot find module 'passport-local'
      at Object.<anonymous> <F:\work\config\passport.js:2:21>
Run Code Online (Sandbox Code Playgroud)

我在F:\ work \node_modules中安装护照.

即使我把它

 var LocalStrategy = require('passport-local').Strategy
Run Code Online (Sandbox Code Playgroud)

就在

 var passport = require('passport')
Run Code Online (Sandbox Code Playgroud)

我仍然得到同样的错误

任何想法为什么?

module node.js passport.js

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

可以动态构建facebook-pasport的回调吗?

使用facebook-passport时,通常要做的是redirect_uri在你使用的FacebookStrategy的构造函数中指定,如下所示:

passport.use("facebook", new FacebookStrategy({
    //TODO: Correctly configure me
    clientID: "XXXXXXX"
  , clientSecret: "XXXXXXXXX"
  , callbackURL: "http://localhost:3007/auth/facebook/callback"
  },
  function(accessToken,refreshToken,profile,done) {
    User.findByFacebookId(profile.id, function(err,user) {
      if(err){ return done(err);}
      if(!user){ return done(null,false)}
      return done(null, user);
    });
  })
);
Run Code Online (Sandbox Code Playgroud)

然后你会设置这样的路线:

app.get('/auth/facebook/login', passport.authenticate('facebook') );
app.get('/auth/facebook/login_callback', passport.authenticate('facebook', {
    successRedirect:"/login_ok.html"
  , failureRedirect:"/login_failed.html"
  }
))
Run Code Online (Sandbox Code Playgroud)

是否可以更改回调网址,使其包含传递给初始登录调用的参数的信息?

注意:这个问题更多的是为了保留我需要一段时间才能解决的信息,以避免其他人沿着相同的路径前进.

facebook node.js passport.js

12
推荐指数
2
解决办法
7495
查看次数

使用Passport-local的电子邮件.以前的帮助不起作用

所以我使用passport-local和express来处理用户登录.到目前为止,我已经能够在使用用户名时成功登录,但是用户名很难记住,我个人认为它们不应该用于处理用户,因此我尝试修改护照上提供的示例策略 - 本地页面通过电子邮件确认用户,但代码不起作用.

我对电子邮件的策略是:

passport.use(new LocalStrategy(function(email, password, done) {
  User.findOne({ email: email }, {}, function(err, user) {
    if (err) { return done(err); }
    if (!user) { return done(null, false, { message: 'Unknown user ' + e }); }
    user.comparePassword(password, function(err, isMatch) {
      if (err) return done(err);
      if(isMatch) {
        return done(null, user);
      } else {
        return done(null, false, { message: 'Invalid password' });
      }
    });
  });
}));
Run Code Online (Sandbox Code Playgroud)

它来自这个策略:

//The login strategy
passport.use(new LocalStrategy(function(username, password, done) {
  User.findOne({ username: username }, function(err, …
Run Code Online (Sandbox Code Playgroud)

javascript authentication express passport.js

12
推荐指数
2
解决办法
8039
查看次数

使用PostgreSQL安装PassportJS

是否有一个使用PostgreSQL设置PassportJS的演练教程(即用PostgreSQL替换MongoDB)?

node.js passport.js

12
推荐指数
1
解决办法
6196
查看次数