我发现Passport文档真的令人费解,因为它似乎试图通过代码示例来说明,而没有实际解释正在发生的事情或各种回调如何相互关联。我的问题是,当注册工作时,它们总是运行两次(由于用户名的唯一约束导致应用程序崩溃),我找不到Passport的程序流程的任何描述,这将有助于我解决出于何处或为何发生这种情况。
我的全部要点是here,草率,因为我花了一整夜时间试图解决这个并重构为疯狂。我将它移动到TypeScript,希望其他信息可以帮助我。
我的设计基本上是:
GET /signup
会显示一个简单的表单,用于将用户名和密码POST到/signup
POST /signup
调用local-signup
策略,成功时重定向到/
或失败时重定向到/signup
done(null, {username, id, bcryptPassword})
。