Skip to content

afansv/vk-oauth-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vk-oauth-proxy

Docker

VK Generic OAuth Proxy

VK использует немного нестандартные практики OAuth:

  • token_type не возвращается при получении access_token
  • email возвращается только при получении access_token, получить его через users.get уже не получится
  • Ответы от api.vk.com оборачиваются в объект response, иногда это может быть неудобно

vk-oauth-proxy решает эти проблемы:

  • В ответ на запрос access_token вместе с ним придёт и поле token_type со значением Bearer
  • email, который приходит с access_token запоминается и ассоциируется с ID пользователя, поле email с этим значением будет добавлено в ответ users.get (хранится не на диске, просто кэш в рантайме с TTL – для большинства сценариев подойдёт)
  • Поля объекта response из ответов api.vk.com будут разворачиваться в корень ответа (только для метода users.get)

Протестировано с версией VK API 5.199

Зачем?

Я не мог нормально подключить ZITADEL к OAuth VK. Потенциально может пригодиться для других SSO-сервисов и OAuth-клиентов.

Конфигурация

Конфигурация происходит при помощи переменных окружения среды

ENV default Описание
VOP_USER_EMAIL_STORE_TTL 1m Время хранения email
VOP_OAUTH_UPSTREAM_HOST https://oauth.vk.com URL VK OAuth
VOP_API_UPSTREAM_HOST https://api.vk.com URL VK API
VOP_OAUTH_PROXY_ADDR :9090 Адрес для запуска прокси OAuth
VOP_API_PROXY_ADDR :9091 Адрес для запуска прокси API

Docker

docker run -p 9090:9090 -p 9091:9091 afansv/vk-oauth-proxy:latest

Полезные ссылки