Я хочу, чтобы моя учетная запись службы выдавала себя за одного из пользователей GSuite. Я
- создал проект через GCP
- включил GMail API в проекте
- добавил сервисный аккаунт в этот проект
- включил
domain-wide delegation
в настройках учетной записи службы на GCP
- добавил
API Client
с service account id
в расширенных настройках через панель администратора Google для GSuite
Пока иду через docs (java) я видел это
GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("MyProject-1234.json"))
.createScoped(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN))
.createDelegated("user@example.com");
Здесь они указывают, какого пользователя учетная запись службы должна олицетворять. Этот код находится в java. Мне нужно выполнить sh то же самое в nodejs.
Просматривая документацию nodejs-client
для googleapis
, я обнаружил следующее:
const {google} = require('googleapis');
const auth = new google.auth.GoogleAuth({
keyFile: '/path/to/your-secret-key.json',
scopes: ['https://www.googleapis.com/auth/cloud-platform'],
});
и
const {google} = require('googleapis');
const oauth2Client = new google.auth.OAuth2(
YOUR_CLIENT_ID,
YOUR_CLIENT_SECRET,
YOUR_REDIRECT_URL
);
// set auth as a global default
google.options({
auth: oauth2Client
});
В чем разница между GoogleAuth
и OAuth2
здесь?
Как мне настроить все, чтобы мое приложение node.js могло доступ к user@abc.xyz
почте через сервисный аккаунт?
Как указать email
Я хочу получить доступ через service account
?