Академия Javascript Khan OAuth не может переопределить default_callback - PullRequest
0 голосов
/ 06 июня 2018

У меня запущено это экспресс-приложение;

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 для API Академии Хана не беспокоит .Однако я следовал инструкциям ответа и перенаправил с параметром oauth_callback, но безрезультатно.

Я вообще новичок в oauth в целом, но я не верю, что это моя вина.Мне просто нужен какой-то обходной путь.

1 Ответ

0 голосов
/ 21 июня 2018

Пакет khan npm https://www.npmjs.com/package/khan позволяет указывать oauth_callback при вызове .requestToken().Например:

khan.requestToken('www.myapp.com/my_callback')

Передача параметра oauth_callback в функцию .requestToken() гарантирует, что аутентифицируемый пользователь будет перенаправлен на указанный сайт.Это гораздо более приятное решение, чем использование node-oauth из-за функциональности, обещаний и выразительной семантики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...