2016-11-07 4 views
1

У меня возникла проблема, я попытался подключиться к API Auth0, чтобы включить сильную идентификацию на моем WebApp.Auth0 NodeJS Authentification Отказано с использованием запроса npm

Для связи:

  • Front-End: Я использую angularJS фронт, и там я реализовал Lock библиотеку для управления всплывающих Auth0 следуя этим WebApp конкретных tutorial.

  • Back-end: NodeJS & Экспресс-сервер, чтобы проверить аутентификацию пользователя, я использую запрос «npm lib» для вызова API Auth0.

Если я хорошо понимаю, щелчок на auth0 виджет посылает запрос на указанную конечную точку URL, и он получил по фоновым:

app.get('/auth0CallbackURL', function (req, res) { 
     console.log(req.query.code); 
     var auth0code  = req.query.code; 
     var client_secret = PROCESS.ENV.SERCRETID; 
     var domain  = PROCESS.ENV.DOMAIN; 
     var client_id  = PROCESS.ENV.CLIENTID; 
     var redirectUrl = PROCESS.ENV.REDIRECTURL; 

     var request = require('request'); // request-promise 
     var requestParams = { 
     url: 'https://mycompanydomain.auth0.com/oauth/token?client_id='+client_id+'&redirect_uri='+redirectUrl+'&client_secret='+client_secret+'&code='+auth0code+'&grant_type=authorization_code', 
     method: 'POST', 
     headers: { 
      'Content-Type': 'application/x-www-form-urlencoded' 
     } 
     } 

И тогда я называю запрос() для возврата имени access_token и проверки подлинности.

request(requestParams, function(err, data) { 
     if (err) { 
     console.log('Err:', err); 
     } else { 
     console.log('response body: ', data.body) 
     } 

Но только результат я получаю:

{ 
     "error": "access_denied" 
     "error_description": "Unauthorized" 
    } 

В начале я thougt это была моя конфигурация Auth0, которая не позволила моей аутентификации, но мне кажется, что все в порядке.

Заранее благодарим за ваши ответы.

ответ

0

Согласно странице вы связаны, вам необходимо пройти следующую информацию:

client_id=YOUR_CLIENT_ID 
&redirect_uri=https://YOUR_APP/callback 
&client_secret=YOUR_CLIENT_SECRET 
&code=AUTHORIZATION_CODE 
&grant_type=authorization_code 

в теле запроса и с типом содержимого application/x-www-form-urlencoded.

вы устанавливаете тип содержимого правильно, но затем передавая данные в компоненте URL запроса и вместо этого вы должны передать его тело POST запрос.

Использование request package вы должны сделать следующее:

var requestParams = { 
    url: 'https://mycompanydomain.auth0.com/oauth/token', 
    method: 'POST', 
    body: 'client_id=' + client_id + 
     '&redirect_uri=' + redirectUrl + 
     '&client_secret=' + client_secret + 
     '&code=' + auth0code + 
     '&grant_type=authorization_code', 
    headers: { 
     'Content-Type': 'application/x-www-form-urlencoded' 
    } 
}