Nano Hash - криптовалюты, майнинг, программирование

Информация о пользователе OAuth2 в Chrome Identity API

Я работаю с Google Chrome Identity API, я успешно получаю токен доступа и отправляю его на свой внутренний сервер.

Чтобы проверить токен доступа, я использую этот URL:

https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=xxxxxx

Мне нужно получить userId аутентифицированного пользователя, как я могу это сделать?

Я использую эти области в файле manifest.json.

https://www.googleapis.com/auth/plus.profile

Ответы:


1

Ответ на https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=xxxxxx включает userId в качестве значения sub.

{
 "azp": "407408718192.apps.googleusercontent.com",
 "aud": "407408718192.apps.googleusercontent.com",
 "sub": "114233674199568482864",
 "scope": "https://www.googleapis.com/auth/userinfo.profile",
 "exp": "1436369027",
 "expires_in": "3589",
 "access_type": "offline"
}

В качестве альтернативы вы можете сделать запрос на people.get и используйте значение id.

{
 "kind": "plus#person",
 "etag": "\"RqKWnRU4WW46-6W3rWhLR9iFZQM/gLREuMULAxw3wiBcudkUCAWTcjE\"",
 "objectType": "person",
 "id": "114233674199568482864",
 "displayName": "Abraham Williams",
 ...
}
08.07.2015
  • Да, когда я запрашиваю конечную точку userInfo= https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=xxxxxx, ответ не содержит userId, но когда я запрашиваю токен доступа в интерактивном режиме, я понял!, спасибо @abraham 09.07.2015

  • 2

    Мое решение:

    Когда я запрашиваю токен доступа в interactive mode, я получаю userId (параметр Sub), но если я делаю это в режиме interactive = false, ответ не имеет параметра sub.

    chrome.identity.getAuthToken({ 'interactive': true }, function(token) {
      // code
    }
    
    09.07.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..