Upsource с GitLab как Oauth
Я запускаю GitLab по локальному адресу http://192.168.0.18/. Upsource работает на http://192.168.0.11/.
Я добавил приложение Upsource в качестве администратора на GitLab. Я установил идентификатор клиента и секретный токен, как сказал GitLab. Авторизация установлена на http://192.168.0.18/oauth/authorize, токен на http://192.168.0.18/oauth/token и пользовательские данные на http://192.168.0.18/api/v4/user (согласно GitLab документация). В сопоставлениях полей я установил для идентификатора пользователя "id", а для обоих электронных писем - "email".
Затем, на странице входа в Upsource, у меня есть значок проверки подлинности присяги. После нажатия на него, GitLab требует регистрации, и пользователь должен авторизовать приложение для своей учетной записи:
Требуется Авторизация
Авторизовать Upsource для использования вашей учетной записи?
Вы являетесь администратором, что означает, что предоставление доступа к Upsource позволит им также взаимодействовать с GitLab в качестве администратора. Действовать с осторожностью.
Это приложение сможет:
Доступ к вашему API
Читать информацию о пользователе
Hovewer, после нажатия authorize
Кнопка Upsource отображает информацию: Authentication failed. Check your credentials and try again.
, Что я установил неправильно? Полевые отображения?
1 ответ
О, я нашел ответ. Как это часто бывает, я боролся с этим довольно много часов, и сразу после того, как я задал этот вопрос, у меня появилась идея, чтобы запустить это самостоятельно. Метод резиновой утки, я думаю...
Как я и подозревал, проблема была в полевых отображениях.
Я заглянул в Network
вкладка в Chrome и там был такой ответ:
Я вручную прошел через весь рабочий процесс Gitlab, а затем смог войти в систему - и после запуска http://192.168.0.18/api/v4/user endpoint я получил данные пользователя:
{"name": "username", "username": "username", "id": 3, "state": "active", "avatar_url": " http://www.gravatar.com/avatar/94232f2d1f8bb2fe940de439a4df1014?s=80&d=identicon"," web_url ":" http://debian/username"," creation_at":"2017-03-25T22:28:21.375Z","is_admin":true,"bio":null,"место": NULL, "скайп": "", "" LinkedIn ":", "щебет": "", "WEBSITE_URL": "", "организации": нулевой,"last_sign_in_at":"2017-03-25T22:28:21.487Z" "confirmed_at":"2017-03-25T22:28:21.376Z","электронная почта":"username@username.username","color_scheme_id":1,"projects_limit":100000,"current_sign_in_at":"2017-03-25T22:36:31.853Z","идентичность":[],"can_create_group": правда,"can_create_project": правда, "two_factor_enabled" ложь, "внешний" ложь}
Проблема была в настройке имени поля ID. Как мы видим в приведенных выше данных JSON, id
поле должно быть сопоставлено с name
/username
не id
сам. После этого изменения я мог успешно войти в Upsource.