【问题标题】:TypeError: next is not a function when io.use(passport.authenticate('google'))TypeError: next 不是函数时 io.use(passport.authenticate('google'))
【发布时间】:2020-05-28 12:39:17
【问题描述】:

我正在尝试使用 socket.io 的 io.use() 进行身份验证,正如他们在documentation 中提到的那样。他们似乎有一个io.use() 的示例,其中函数调用next(),但我得到了错误:

TypeError: next 不是函数

使用io.use(passport.authenticate('google'))

更新

我知道documentation 表明我需要将next 作为参数传递。但是我不能通过下一个,因为 passport.authenticate() 方法是由 passport.js 定义的,我没有在那里声明它(就像在文档中一样)。

我认为我可以使用的唯一选项是定义一个函数并在其中使用passport.authenticate。但我不确定这是否是正确的方法。如果我这样做,我可能还需要处理自定义回调。

【问题讨论】:

    标签: node.js socket.io passport.js passport-google-oauth


    【解决方案1】:

    您需要将 next 作为参数传递

    【讨论】:

    • 函数 passport.authenticate 是 passpport.js 的,所以我不认为我可以通过它,因为它有自己的方法签名。我应该使用passport.authenticate('google', {...}, next) 吗?如果是这样,那我接下来要传入什么?
    猜你喜欢
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 2016-04-22
    • 2016-12-28
    • 2017-04-18
    • 2021-11-17
    • 2019-10-27
    相关资源
    最近更新 更多