Моя команда и я недавно разработали хром-расширение для нашего клиента.Мы хотим, чтобы это расширение Chrome могло отправлять запрос POST в API клиента.
Клиент использует проверку токена пользователя Google для проверки содержимого запроса.(https://packagist.org/packages/google/apiclient)
Запрос содержит два важных поля: токен и адрес электронной почты. Токен и адрес электронной почты получены с использованием identity.getAuthToken()
и identity.getProfileUserInfo()
.
Содержимое поля «oauth2»в манифесте это
"oauth2": {
"client_id": "OUR_CLIENT_ID.apps.googleusercontent.com",
"scopes": [
"email"
]
}
Теперь полученный токен не может быть проверен API, и мы не знаем, как создать токен в расширении Chrome, который можно проверить.
Другой проект от другой команды может генерировать токен из Интернета, используя что-то вроде этого:
{"web":{"client_id":"CLIENT_ID.apps.googleusercontent.com","project_id":"PROJECT_NAME","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://accounts.google.com/o/oauth2/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"SOME_SECRET","javascript_origins":["SOME_URL"]}}
Мы пытались использовать CLIENT_ID, сгенерированный из того же проекта, что и API, но он не работал.
Также можно заметить, что токен, который работает, сгенерированный из сети другой командой, намного длиннее.
Как мы получаем токен:
chrome.identity.getAuthToken({ interactive: true }, (token) => {
if (chrome.runtime.lastError) {
return
}
return token
})
Наши разрешения в манифесте:
"permissions": [
"identity",
"identity.email",
"notifications",
"https://*/*",
"http://*/*"
]
Мы хотели бы знать, возможно ли создать токен в расширении chorme, который будет работать с клиентской библиотекой.
И если это невозможно, мы хотели бызнать, возможно ли сгенерировать рабочий токен из возможного API, который мы разработаем для этого вопроса.
Большое спасибо.