GithubHelp home page GithubHelp logo

vk-oauth-proxy's Introduction

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

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

vk-oauth-proxy's People

Contributors

afansv avatar

Stargazers

qqepic avatar Shvedov Yury avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.