FeathersJS: как отладить процесс аутентификации OAuth2?

Я успешно использовал OAuth2 в приложении FeathersJS для аутентификации в Facebook, Github и т. Д. Теперь я пытаюсь использовать его для аутентификации на сервере Wordpress с помощью WordPress OAuth Server. Я настроил его и установил все параметры конфигурации на значения, которые я считаю правильными:

...
const OAuth2Strategy = require('passport-oauth2').Strategy;

...
app.configure(oauth2({
    name: 'wordpress',
    Strategy: OAuth2Strategy,
    authorizationURL: 'https://192.168.1.86/wp-content/plugins/miniorange-oauth-20-server/web/index.php/moserver/authorize',
    tokenURL: 'https://192.168.1.86/wp-content/plugins/miniorange-oauth-20-server/web/index.php/moserver/token',
    successRedirect: '/',
    failureRedirect: '/',
    clientID: 'CLIENT_ID',
    clientSecret: 'CLIENT_SECRET'
  }));

но сервер FeathersJS всегда не проходит аутентификацию. Проблема в том, что я не вижу никакой информации о том, почему происходит сбой, единственная информация, которую я получаю после установки переменной окружения DEBUG = "перья-аутентификация *":

  feathers-authentication:express:expose-headers Exposing Express headers to hooks and services +36s
  feathers-authentication:express:expose-cookies Exposing Express cookies to hooks and services undefined +36s
  feathers-authentication:express:expose-headers Exposing Express headers to hooks and services +127ms
  feathers-authentication:express:expose-cookies Exposing Express cookies to hooks and services undefined +127ms
  feathers-authentication:middleware:failure-redirect Clearing old 'feathers-jwt' cookie +37s
  feathers-authentication:middleware:failure-redirect Redirecting to / after failed authentication. +0ms

Кто-нибудь знает, как получить дополнительную информацию о том, почему аутентификация OAuth2 не работает, чтобы я мог проверить, какая конфигурация неправильная?

Спасибо!


person Jordi Blanch    schedule 15.07.2019    source источник


Ответы (1)


Наконец-то мне удалось узнать, что именно не удалось ... Я попытался установить для DEBUG значение "паспорт" (DEBUG = "паспорт"), а затем у меня было много информация на консоли. Я проверил эту информацию и увидел, что моя проблема связана с самозаверяющим сертификатом, который я выпустил для тестирования с локальным сервером Wordpress.

Для всех, кто в этом нуждается, чтобы не жаловаться на паспорт (или что-то еще) на использование самоподписанного сертификата, я добавил следующие строки:

if ('development' == app.get('env')) {
  process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
}

в моем исходном файле .js (в моем случае index.js). Это позволяет избежать сбоя любого SSL-вызова из-за самоподписанного сертификата, а вместо этого есть просто предупреждение.

person Jordi Blanch    schedule 16.07.2019