如何在本地身份验证后,将本地护照与JWT令牌结合使用?
我想使用node-jwt-simple并查看passport.js我不知道该怎么做.
var passport = require('passport')
  , LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
  function(username, password, done) {
    User.findOne({ username: username }, function(err, user) {
      if (err) { return done(err); }
      if (!user) {
        return done(null, false, { message: 'Incorrect username.' });
      }
      if (!user.validPassword(password)) {
        return done(null, false, { message: 'Incorrect password.' });
      }
      return done(null, user);
    });
  }
));
Run Code Online (Sandbox Code Playgroud)
调用done()时是否可以返回令牌?像这样......(只是伪代码)
if(User.validCredentials(username, password)) {
  var token = jwt.encode({username: username}, tokenSecret);
  done(null, {token : token}); //is this possible? …Run Code Online (Sandbox Code Playgroud) 使用Passport.js有一种方法可以为同一路由指定多个身份验证提供程序吗?
例如(来自护照指南)我可以在下面的样本路线上使用本地和Facebook和Twitter策略吗?
app.post('/login',
  passport.authenticate('local'), /* how can I add other strategies here? */
  function(req, res) {
    // If this function gets called, authentication was successful.
    // `req.user` contains the authenticated user.
    res.redirect('/users/' + req.user.username);
  });
Run Code Online (Sandbox Code Playgroud) 我有以下内容:
<%= link_to my_path, method: :delete, confirm: 'Delete?', class: 'link-delete', 'data-message' => 'Are you sure?', 'data-severity' => 'danger', :remote => true do %>
  <i class="icon-trash"></i>
<% end %>
Run Code Online (Sandbox Code Playgroud)
它会启动一个Bootstrap Modal进行确认,我想挂钩ajax调用,以便我可以显示一个微调器或某种文本.
我知道我可以使用不引人注目的javascript来监听点击事件,如果我不在我的link_to中使用':remote => true'
jQuery ->
  $('.link-delete').live 'click', (event) ->
    $('.link-delete').html("Loading...")  #THE MSG OR ANIMATION I WANT TO DISPLAY
    $.get(this.href, null, null, 'script')
   false
Run Code Online (Sandbox Code Playgroud)
但是在使用':remote => true'时不确定如何将两者结合起来
有什么建议?
谢谢您的帮助
如何让Terraform 0.10.1支持两个不同的提供商而不必每次为每个提供商运行'terraform init'?
我正在尝试使用Terraform
1)使用'DigitalOcean'提供程序提供API服务器
2)随后使用'Docker'提供程序来启动我的容器
有什么建议?我是否需要编写一个包装Terraform的编排脚本?
嗨,我正在开发一个Rails 3项目,我正在使用act-as-taggable-on,一切正常!:)
我只有一个问题.
有谁知道如何将我的'自定义'验证添加到ActsAsTaggableOn :: Tag?我可以挂钩的任何回调(例如before_tag_save)?或类似的东西?
在保存模型之前,我需要在tag_list中对每个'标签'运行一个正则表达式(以确保每个标签不包含任何非法字符),并且想知道是否有标准的方法.
我解决问题的方法是在我的PostController中添加一个验证方法,它只是遍历标签列表并运行正则表达式,但这对我来说似乎很难看.
有什么建议?
先感谢您!:)
我正在将一个Hapi项目移植到v17,并在迁移到异步/等待时遇到Mongoose的一些问题.
使用'await'的任何代码,在模型(mongoose)上,对象例如:
const result = await User.findOne({email: email}).exec();
Run Code Online (Sandbox Code Playgroud)
运行'node server.js'时出现以下异常
            await User.findOne({}).exec();
        ^^^^^
SyntaxError: await is only valid in async function
at new Script (vm.js:74:7)
at createScript (vm.js:246:10)
at Object.runInThisContext (vm.js:298:10)
at Module._compile (internal/modules/cjs/loader.js:670:28)
at Object.Module._extensions..js 
(internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Module.require (internal/modules/cjs/loader.js:650:17)
at require (internal/modules/cjs/helpers.js:20:18)
Run Code Online (Sandbox Code Playgroud)
我正在运行节点v10.2.0和mongoose 5.1.2并且无法理解为什么我收到错误.
该mongoosejs文件明确指出,应该使用EXEC()使用异步何时返回承诺/等待是说这里
有什么建议?
node.js ×3
passport.js ×2
ajax ×1
hapijs ×1
javascript ×1
jwt ×1
link-to ×1
mongoose ×1
terraform ×1
token ×1
validation ×1