Gmail API Nodejs и аутентификация PM2 - PullRequest
0 голосов
/ 30 марта 2020

Я настроил код для отправки писем с помощью Gmail API в Nodejs. Он отлично работает на локальной машине. Он просит ввести код, посетив URL. Что-то вроде

Authorize this app by visiting this URL: someURL
Enter the code from that page here: copy-paste code here

Это автоматически выполняется Google после Node.js Quickstart для Gmail и автоматически генерирует token.json. В разработке все прекрасно работает.

Сейчас в работе я развертываю свое приложение, используя PM2 и Nginx. Итак, теперь каждый сервер узла работает в фоновом режиме, а журналы создаются в файлах.

Я вижу приведенное выше приглашение в файле журнала Enter the code from that page here:. Но поскольку журнал передается в файл, у меня нет возможности вставить код, поскольку у меня нет доступа к стандартному вводу.

Я попытался сгенерировать token.json из локального и использовать его на сервере что, похоже, не работает.

Как это исправить и есть ли способ обойти это?

ПРИМЕЧАНИЕ. Код для авторизации и отправки писем работает просто отлично. Я не публикую его здесь, потому что не хочу, чтобы вопрос был загроможден.

1 Ответ

1 голос
/ 31 марта 2020

Если вы пытаетесь создать серверное приложение без необходимости взаимодействия с пользователем, вместо использования обычного OAuth, вы можете попытаться использовать Сервисная учетная запись .

Хотя учтите, что сервисные учетные записи не У вас нет Gmail API как такового, поэтому вы должны включить Domain-Wide Delegation для олицетворения другого пользователя домена.

Если вы настаиваете на аутентификации реального пользователя, вы можете получить token.json до реализации PM2 и последующего его использования.

Также вы можете взглянуть на эти две ( 1 и 2 ) записи github, которые также открывают ваши Первоначальная мысль о попытке использовать stdin для аутентификации пользователя.

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