如何解决Express.js OAuth:“ invalid_request:“ redirect_uri”参数与应用程序的有效网址不匹配”
我正在使用passport-asana
将一些凭据传递给Oasa服务器(位于asana.com)。
我进入范围授予页面,并登录该服务。
但是在回调步骤中,我在浏览器窗口中看到了这一点:
/*
invalid_request: The `redirect_uri` parameter does not match a valid url for the application.
*/
这是我传递OAuth凭据的方式,以及初始和回调OAuth步骤的路由处理程序:
const callbackURL: string = `${process.env.DOMAIN}/oauth/callback`;
const asanaStrategy = new AsanaStrategy({
clientID: process.env.ASANA_CLIENT_ID,clientSecret: process.env.ASANA_CLIENT_SECRET,callbackURL,},(asanaAccessToken: any,asanaRefreshToken: any,asanaProfile: any,doneCallback: Function) => {
findAndPassUserToSerializer(asanaProfile.id,doneCallback);
});
passport.use(asanaStrategy);
// router file,exporting passport object above
router.get(
'/oauth',passportWithAsanaStrategy.authenticate('Asana'),(req: Request,res: Response) => { /* IGNORED */ },);
router.get(
'/oauth/callback',passportWithAsanaStrategy.authenticate('Asana',{ failureRedirect: '/login' },res: Response) => {
// Successful authentication,redirect home.
res.redirect('/');
}),);
也尝试过
用encodeURI
编码第一行:
const callbackURL: string = encodeURI(`${process.env.DOMAIN}/oauth/callback`);
错误是相同的。
关于如何解决此问题的其他想法?
解决方法
错误似乎表明传递的重定向URL与应用程序设置中注册的URL不匹配。
我建议导航到Asana的开发人员控制台,并比较注册的重定向URL,以确保它们与最终值${process.env.DOMAIN}/oauth/callback
相匹配。
有关请求参数的文档:https://developers.asana.com/docs/oauth#user-authorization-endpoint
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。