【发布时间】:2015-09-30 06:24:17
【问题描述】:
有没有办法将自定义参数附加到 passport.js Oauth2 调用?
对 URL 构建的调用如下:
authorizationURL?response_type=code&redirect_uri=callbackURL&scope=scope&client_id=clientID
有没有办法改变这个 URL 并附加“&myparameter=myvalue”
所以希望的结果是 authorizationURL?response_type=code&redirect_uri=callbackURL&scope=scope&client_id=clientID&myparameter=myvalue
(所有粗体参数在下面指定:)
长篇大论:
如下定义策略(例如亚马逊策略):
passport.use(new AmazonStrategy({
clientID: config.amazon.clientID,
clientSecret: config.amazon.clientSecret,
callbackURL: config.amazon.callbackURL,
passReqToCallback: true,
authorizationURL: 'https://eu.account.amazon.com/ap/oa?',
tokenURL: 'https://api.sandbox.amazon.de/auth/o2/token'
}
请求
app.get('/oauth/amazon', passport.authenticate('amazon', {
failureRedirect: '/login',
scope: ['profile postal_code']
}));
类似请求的回调!
实际问题:
如何附加“&myparameter=myvalue”
【问题讨论】:
-
尝试将其直接附加到 url,例如
callbackURL: config.amazon.callbackURL + '?myparameter=myvalue' -
是的,我这样做了。您需要指定
authorizationURL: config.amazon.callbackURL + "?myparameter=myvalue&response_type=code&否则您最终会得到两个?并且 URL 被错误解释。这将添加未使用的参数?response_type。所以我想知道是否有一种“适当的方式”来做到这一点
标签: javascript node.js express passport.js