Sails.js 0.11 和护照:'Missing Credentials' 错误

Sails.js 0.11 and passport: 'Missing Credentials' error

我已遵循此站点的教程:http://iliketomatoes.com/implement-passport-js-authentication-with-sails-js-0-10-2/

注册表单工作正常,所有内容都保存到我的数据库中 (MongoDB) 但是当我想登录时,出现 missing credentials 错误:

{
  "message": "Missing credentials",
  "user": false
}

这很奇怪,我已经克隆了 https://github.com/iliketomatoes/passport_with_sailssails lift 它并且一切正常。我已将所有 api 源文件和配置复制到我的项目中。只有视图不同,但我确定我使用的输入名称为:emailpassword。而且我仍然有这个错误。

我使用 MongoDB 作为数据库,我已经切换到本地磁盘(如在这个 repo 中),但仍然是同样的问题。我已经将 package.json 文件中的 npm 模块版本更改为 repo 中的版本,但仍然出现相同的错误。很奇怪。

我还必须提到 POST 请求包含 emailpassword 字段。我已经仔细检查过了。

有人知道什么会导致这个问题吗?

编辑: 我的 login.ejs 视图如下所示:

<div class="row">
  <div id="content" class="col-sm-12 full">
    <div class="row">
      <div class="login-box">

        <div class="header">
          Login to JSCS Dashboard
        </div>


        <form class="form-horizontal login" action="/login" method="POST">

          <fieldset class="col-sm-12">
            <div class="form-group">
              <div class="controls row">
                <div class="input-group col-sm-12">
                  <input type="email" class="form-control" name="email" placeholder="E-mail"/>
                  <span class="input-group-addon"><i class="fa fa-user"></i></span>
                </div>
              </div>
            </div>

            <div class="form-group">
              <div class="controls row">
                <div class="input-group col-sm-12">
                  <input type="password" class="form-control" name="password" placeholder="Password"/>
                  <span class="input-group-addon"><i class="fa fa-key"></i></span>
                </div>
              </div>
            </div>

            <div class="row">


              <input type="submit" value="submit" class="btn btn-lg btn-primary col-xs-12">

            </div>

          </fieldset>

        </form>

        <a class="pull-left" href="auth-layout.ejs#">Forgot Password?</a>

        <div class="clearfix"></div>

      </div>
    </div><!--/row-->

  </div>



</div><!--/row-->

它保存在 Auth 子文件夹中,但显示正确。注册表单看起来和它很像,而且可以用。

替换为:

<form class="form-horizontal login" action="/login" method="POST">.

有了这个:

<form class="form-horizontal login" action="/auth/local" method="POST">

您也可以考虑改用本教程:https://www.bearfruit.org/2014/07/21/tutorial-easy-authentication-for-sails-js-apps/

使用该教程实现它要容易得多,因为它会自动完成您所做的大部分工作。

好的,问题是另一个服务干扰了 AuthController。无论如何感谢您的帮助