Sails.js 0.11 和护照:“缺少凭据”错误
Posted
技术标签:
【中文标题】Sails.js 0.11 和护照:“缺少凭据”错误【英文标题】:Sails.js 0.11 and passport: 'Missing Credentials' error 【发布时间】:2015-08-22 13:20:42 【问题描述】:我已经按照这个网站的教程: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_sails , sails lift
它并且一切正常。我已将所有 api 源文件和配置复制到我的项目中。只有视图不同,但我确定我使用的是带有名称的输入:email
和 password
。我仍然有这个错误。
我使用 MongoDB 作为数据库,我已切换到本地磁盘(如在此 repo 中),但仍然存在同样的问题。我已将 package.json
文件中的 npm 模块版本更改为来自 repo 的版本,但仍然出现相同的错误。很奇怪。
另外我必须提到 POST 请求包含 email
和 password
字段。我已经仔细检查过了。
有人知道什么会导致这个问题吗?
编辑:
我的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
子文件夹中,但显示正确。注册表单看起来与它非常相似,并且可以正常工作。
【问题讨论】:
您可以在您的 passport.js 配置文件中检查您使用 usernameField 和 passwordField 属性指定了用户名和密码字段吗? 是的,它正在使用。我还尝试将email
重命名为 username
并在没有成功的情况下摆脱这个自定义属性。这很奇怪,因为就像我说的那样,我已将所有 api
文件夹文件从教程存储库复制到我的项目中。运行教程存储库很好,一切都按预期工作。但是当我切换到我的项目时,我看到了上面的错误。如果您访问教程存储库 `api` 文件夹。您将看到与我的项目中相同的代码 :)
我不认为问题出在 api 文件夹中。我的猜测是它与视图有关。你能用视图语法更新你的问题吗?
我添加了login.ejs
语法
【参考方案1】:
替换这个:
<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/
使用该教程实现它要容易得多,因为它可以自动完成大部分工作。
【讨论】:
感谢分享另一个教程。我发现了一个问题。这是另一项使用护照干扰身份验证的服务:/【参考方案2】:好的,所以问题是另一个服务干扰了 AuthController。无论如何感谢您的帮助
【讨论】:
以上是关于Sails.js 0.11 和护照:“缺少凭据”错误的主要内容,如果未能解决你的问题,请参考以下文章
Sails.js 与护照-http-bearer 身份验证不起作用