护照“ Hello World”总是失败

马达拉的幽灵

我有以下内容:

import {Router} from 'express';
import passport from 'passport';
import {Strategy} from 'passport-local';
import pg from 'pg';
import {pgUri} from '../environment';

let loginRouter = Router();

passport.use(new Strategy((username, password, done) => done(null, true)));
//{
//    pg.connectAsync(pgUri)
//        .then(([client, release]) => {
//            return client.queryAsync('select * from users where "user" = $1::TEXT', [username])
//                .finally(release);
//        })
//        .tap(result => console.log(result.rows))
//        .then(result => done(null, true));
//}));

loginRouter.get('/', (request, response) => response.render('login'));
loginRouter.post('/', passport.authenticate('local', {successRedirect: '/',
                                                      failureRedirect: '/login'}));

export default loginRouter;

这是一个快速路由文件,定义了最简单的身份验证方案。上面的内容始终重定向回/login,指示失败。

我尝试过的

  • 更改failureRedirect/loginFailed真正重定向到那里。因此登录确实失败。
  • console.log函数体内的断点和s不会被命中。
  • 调用donedone(null, {foo: "bar"})代替真正改变什么。

值得注意

  • 我正在使用babel来支持ES6,但是由于这是唯一失败的部分,并且我可以设置的断点(在之前passport.use)显示了所有变量的期望值,所以我认为这不是问题。
  • .get()路线将按预期工作,并显示表单。

我在引导阶段有这个:

app.use(session({
    secret: "some-secret",
    resave: true,
    saveUninitialized: true
}));

app.use(passport.initialize());
app.use(passport.session());

passport.serializeUser((user, done) => done(null, {foo: "bar"}));

passport.deserializeUser((user, done) => done(null, {foo: "bar"}));

这是我使用的表格(直接从护照示例中复制

<form action="/login" method="post">
    <div>
        <label>Username:</label>
        <input type="text" name="username"/>
    </div>
    <div>
        <label>Password:</label>
        <input type="password" name="password"/>
    </div>
    <div>
        <input type="submit" value="Log In"/>
    </div>
</form>

我不知道这里出了什么问题。将不胜感激。

罗伯·约翰森

您需要使用一些东西来解析POST正文。

Passport被设计为执行一件事:对请求进行身份验证。它将所有其他功能(包括解析POST正文)委派给应用程序。他们在概述中说了这一点,但是很容易低估了它们的含义。

他们返回到其“配置”页面的“中间件”部分中的主题,因此我建议阅读该主题。

我碰巧使用body-parser模块来处理此问题(在此处阅读有关内容)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Knockout.js-简单的“ Hello World”失败

来自分类Dev

TextAngular的简单“ Hello World”类型设置失败

来自分类Dev

护照req.isAuthenticated()总是返回fasle

来自分类Dev

节点护照本地策略始终失败

来自分类Dev

成功,但仍在使用失败重定向-护照

来自分类Dev

C ++的Hello World错误

来自分类Dev

通过PInvoke的“ Hello World”

来自分类Dev

Apache中的Hello World

来自分类Dev

QWebSocket Hello World示例

来自分类Dev

Strace Hello World程序

来自分类Dev

崇高的Ruby Hello World

来自分类Dev

扩展的Hello World程序

来自分类Dev

Webratio的Hello World

来自分类Dev

简单修改Hello World

来自分类Dev

Maven 3 Jenkins插件-Hello World示例的“构建失败”

来自分类Dev

Maven 3 Jenkins插件-Hello World示例的“构建失败”

来自分类Dev

Eclipse Hello world在Mac上是否失败,工具链?

来自分类Dev

corda Hello World pt 2 中的合同验证失败

来自分类Dev

护照失败404-GitHub的InternalOAuthError为什么?

来自分类Dev

从护照访问护照策略

来自分类Dev

Java-Hello World错误

来自分类Dev

Mobicents Restcomm Hello World实施

来自分类Dev

EmberJs错误中的Hello World

来自分类Dev

无法运行Hello World Servlet

来自分类Dev

Hello World CUDA编译问题

来自分类Dev

OpenShift Hello World Java垂直

来自分类Dev

Hello World无法打印。错误

来自分类Dev

Java-Hello World错误

来自分类Dev

Spring MVC Hello World问题