使用Grunt的Passport身份验证策略

时间:2014-06-03 07:05:28

标签: node.js express gruntjs passport.js

问题涉及设置开发环境(稍后在生产等其他环境中)....

使用最新的Node,Passport和Grunt,但Express仍在3链中。

处理仅利用外部身份验证的应用程序(即没有本地Passport策略)。每个策略的oauth客户端ID,密钥和回调配置(即Google,Facebook等)都没有(显然)存放在Git中。

想知道人们如何在不同环境下解决这个问题?刚刚和Grunt擦肩而过,所以我正在注册一个任务(在读取我的package.json的initConfig之后)读取一个身份验证配置(除了package.json中的身份验证属性):

grunt.registerTask('auth', function() {
    var pkg = grunt.config('pkg');
    var util = require('util');

    if (grunt.file.exists(pkg.authentication)) {
      grunt.log.writeln(util.format('Setting up authentication with %s', pkg.authentication));

      var auth = grunt.file.readJSON(pkg.authentication);
      .... // move auth data into a auth.js read by the application
    } else 
      grunt.fail.warn(util.format('%s not found (authentication property in package.json), neccessary for authentication but not managaged by Git', pkg.authentication));        
  });

基本上,开发人员/安装人员负责拥有私有(不受Git管理)的本地身份验证设置。类似的东西:

{
  'googleAuth' : {
    'clientID'  : 'your-secret-clientID-here',
    'clientSecret'  : 'your-client-secret-here',
    'callbackURL'   : 'http://localhost:8080/auth/google/callback'
  }
}

将JSON内容的简单副本放入放在应用程序所需的构建目录中的auth.js文件中。

更好的方式?

0 个答案:

没有答案