gpt4 book ai didi

javascript - 向 everyauth 添加另一个步骤的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 03:12:25 25 4
gpt4 key购买 nike

我想向 everyauth openid module 中定义的 OpenId 身份验证序列添加另一个步骤。 .

我不确定 everyauth 是否是为此设计的。作者mentions它是可定制的,但没有示例,而且我仍然是一个 javascript 新手。

例如,everyauth 中的 OAuth 模块定义其身份验证回调步骤如下:

.get('callbackPath',                                                                                                                                               
'the callback path that the 3rd party OAuth provider redirects to after an OAuth authorization result - e.g., "/auth/facebook/callback"')
.step('getCode')
.description('retrieves a verifier code from the url query')
.accepts('req res')
.promises('code')
.canBreakTo('authCallbackErrorSteps')
.step('getAccessToken')
.accepts('code')
.promises('accessToken extra')
.step('fetchOAuthUser')
.accepts('accessToken')
.promises('oauthUser')
.step('getSession')
.accepts('req')
.promises('session')
.step('findOrCreateUser')
.accepts('session accessToken extra oauthUser')
.promises('user')
.step('compile')
.accepts('accessToken extra oauthUser user')
.promises('auth')
.step('addToSession')
.accepts('session auth')
.promises(null)
.step('sendResponse')
.accepts('res')
.promises(null)

如果我需要额外的自定义步骤,我该怎么办?我不想更改 everyauth 模块源代码。

最佳答案

这个问题已经提出很久了,但是没有答案。我刚才面临着同样的挑战,并记录我的答案,以造福像我这样的其他 Node 菜鸟:)

我正在使用 Facebook 身份验证,并且希望在成功身份验证后将响应发送到客户端之前执行一些自定义处理。我没有添加另一个步骤,而是覆盖了“sendResponse”步骤,添加了自定义逻辑,然后委托(delegate)给 super “sendResponse”实现。现在我的代码看起来像 -

everyauth
.facebook
.sendResponse(function(res) {
console.log('##### sendResponse custom step called #####');
// --> Your custom logic here
this._super();
});

您可以为特定模块(例如 facebook)覆盖它,如上所示,也可以在“每个模块”级别完成。

希望这有帮助。

关于javascript - 向 everyauth 添加另一个步骤的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8057237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com