Überauth VK – Ueberauth VK Strategy v0.3.1
VK OAuth3 стратегия для Überauth.
Требования
Мы поддерживаем версии elixir
1.4
и выше.
Монтаж
Настройте свое приложение в VK Developers.
Добавьте
:ueberauth_vk
в список зависимостей вmix.exs
:def deps do # установка через hex: [{:ueberauth_vk, "~> 0,3"}] # если вы хотите использовать github: # [{:ueberauth_vk, github: "sobolevn/ueberauth_vk"}] конец
Добавьте стратегию в свои приложения:
определение приложения делать [приложения: [:ueberauth_vk]] конец
Добавить ВКонтакте в вашу конфигурацию Überauth:
конфигурация: ueberauth, ueberauth, провайдеры: [ vk: {Ueberauth.Strategy.VK, []} ]
Обновите конфигурацию вашего провайдера:
конфиг :ueberauth, Ueberauth.
Включите модуль Überauth в свой контроллер:
дефмодуль MyApp.AuthController сделать используйте MyApp.Web, :controller вилка ... конец
Создайте маршруты запроса и обратного вызова, если вы еще этого не сделали:
область "/auth", MyApp сделать pipe_through: браузер получить "/: провайдер", AuthController,: запрос получить "/:провайдер/обратный вызов", AuthController, :обратный вызов конец
Ваш контроллер должен реализовать обратные вызовы для обработки
Ueberauth.Auth
иUeberauth.Failure
ответов.
Пример реализации см. в примере приложения Überauth.
Настройка
Можно настроить несколько полей, например default_scope
, default_display
, default_state
, profile_fields
и uid_field
.
Сфера
По умолчанию запрошенная область "public_profile"
. Область может быть настроена либо явно как значение запроса области
в пути запроса, либо в вашей конфигурации:
config :ueberauth, Ueberauth, провайдеры: [ vk: {Ueberauth.Strategy.VK, [default_scope: "друзья,видео,офлайн"]} ]
Поля профиля
Вы также можете указать настраиваемые поля для профиля пользователя:
config :ueberauth, Ueberauth, провайдеры: [ vk: {Ueberauth.Strategy.VK, [profile_fields: "фото_200,местоположение,онлайн"]} ]
См. Справочник по методам VK API > Пользователь для полного списка полей.
Состояние
Вы также можете установить настраиваемое поле с именем состояние
. Он используется для предотвращения атак типа «человек посередине».
конфигурация: ueberauth, ueberauth, провайдеры: [ vk: {Ueberauth.Strategy.VK, [default_state: "секретное-состояние-значение"]} ]
Это состояние будет передано вам в обратном вызове как /auth/vk?state=
и будет доступно в структуре успеха.