Javascript 可汗学院 OAuth 无法覆盖 default_callback
Javascript Khan Academy OAuth can't override default_callback
我已经安装了这个 Express 应用程序;
const oa = new OAuth(
'https://www.khanacademy.org/api/auth2/request_token',
'https://www.khanacademy.org/api/auth2/access_token',
process.env.CONSUMER_KEY,
process.env.CONSUMER_SECRET,
'1.0',
'http://localhost:3000/oauth/callback',
'HMAC-SHA1',
64
)
app.get('/oauth', (req, res) => {
oa.getOAuthRequestToken(function requestTokenCallback(err, token, token_secret, results) {
if (err) {
console.log('requestTokenCallback', err)
return
}
req.session.oauth = req.session.oauth || {}
req.session.oauth.token = token
req.session.oauth.token_secret = token_secret
res.redirect(`https://www.khanacademy.org/api/auth2/authorize?oauth_token=${token}`)
// I've tried res.redirect(`https://www.khanacademy.org/api/auth2/authorize?oauth_token=${token}&oauth_callback=${encodeURIComponent('http://localhost:3000/oauth/callback')}`)
})
})
但是,一旦用户被重定向,单击 accept
不会将他们重定向到我的回调,'http://localhost:3000/oauth/callback'
。
这个家伙似乎遇到了同样的问题:。
但是,我按照答案的说明并使用 oauth_callback
参数重定向,但无济于事。
总的来说,我对 oauth 非常陌生,但我不认为这是我的错。我只需要某种解决方法。
khan
npm 包 https://www.npmjs.com/package/khan 允许在调用 .requestToken()
时指定 oauth_callback
。例如:
khan.requestToken('www.myapp.com/my_callback')
将 oauth_callback
参数传递到 .requestToken()
函数中可确保被验证的用户将被重定向到指定站点。由于柯里化的功能、承诺和表达语义,这是一个比使用 node-oauth
更可爱的解决方案。
我已经安装了这个 Express 应用程序;
const oa = new OAuth(
'https://www.khanacademy.org/api/auth2/request_token',
'https://www.khanacademy.org/api/auth2/access_token',
process.env.CONSUMER_KEY,
process.env.CONSUMER_SECRET,
'1.0',
'http://localhost:3000/oauth/callback',
'HMAC-SHA1',
64
)
app.get('/oauth', (req, res) => {
oa.getOAuthRequestToken(function requestTokenCallback(err, token, token_secret, results) {
if (err) {
console.log('requestTokenCallback', err)
return
}
req.session.oauth = req.session.oauth || {}
req.session.oauth.token = token
req.session.oauth.token_secret = token_secret
res.redirect(`https://www.khanacademy.org/api/auth2/authorize?oauth_token=${token}`)
// I've tried res.redirect(`https://www.khanacademy.org/api/auth2/authorize?oauth_token=${token}&oauth_callback=${encodeURIComponent('http://localhost:3000/oauth/callback')}`)
})
})
但是,一旦用户被重定向,单击 accept
不会将他们重定向到我的回调,'http://localhost:3000/oauth/callback'
。
这个家伙似乎遇到了同样的问题:oauth_callback
参数重定向,但无济于事。
总的来说,我对 oauth 非常陌生,但我不认为这是我的错。我只需要某种解决方法。
khan
npm 包 https://www.npmjs.com/package/khan 允许在调用 .requestToken()
时指定 oauth_callback
。例如:
khan.requestToken('www.myapp.com/my_callback')
将 oauth_callback
参数传递到 .requestToken()
函数中可确保被验证的用户将被重定向到指定站点。由于柯里化的功能、承诺和表达语义,这是一个比使用 node-oauth
更可爱的解决方案。