Аутентификация пользователя Яндекс OAuth GitLab - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу аутентифицировать пользователей gitlab через Яндекс.OAuth .Я пытаюсь использовать стратегию oauth2_generic, но не могу получить информацию о пользователе.Кто-нибудь знает как его настроить?

1 Ответ

0 голосов
/ 26 сентября 2018

Наконец, я получил решение:

gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['Yandex']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_providers'] = [
  {
    "name" => "oauth2_generic",
    "app_id" => "your-app-id",
    "app_secret" => "your-app-secret",
    "args" => {
      client_options: {
        "site" => "https://oauth.yandex.ru",
        "authorize_url" => "/authorize",
        "token_url" => "/token",
        "user_info_url" => "https://login.yandex.ru/info",
      },
      user_response_structure: {
        attributes: {
          name: 'login',
          email: 'default_email',
          first_name: 'first_name',
          last_name: 'last_name'
        }
      },
      redirect_url: 'http://your-gitlab-host/users/auth/Yandex/callback',
      name: 'Yandex',
      strategy_class: "OmniAuth::Strategies::OAuth2Generic"
    }
  }
]

Вам необходимо зарегистрировать нового клиента с API Яндекс.Паспорта (логин) разрешениями, такими как: доступ к имени пользователя, доступна адрес электронной почты и т. д.

Затем заполните app_id и app_secret в конфигурации gitlab.Вот и все!

...