Как настроить прослушиватель HTTP на локальном хосте в приложении OSX - PullRequest
1 голос
/ 05 апреля 2020

Я пытаюсь создать приложение OSX, используя swift и раскадровку. Я внедряю Google OAuth для приложения. Следуя руководству Google https://developers.google.com/identity/protocols/oauth2/native-app#sample -authorization-urls , я открываю браузер с URL-адресом авторизации обратной связи (т. Е. После входа в систему он возвращается на локальный хост, где URL-адрес содержит код авторизации и другие метаданные.

Чтобы лучше понять, как работает рабочий процесс аутентификации:

  1. Пользователь выбирает кнопку авторизации в приложении
  2. Браузер открывается с URL-адресом:
https://accounts.google.com/o/oauth2/v2/auth?
 scope=email%20profile&
 response_type=code&
 state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken&
 redirect_uri=http%3A//127.0.0.1%3A9004&
 client_id=client_id
Экран согласия выбора и разрешения учетной записи Google отображает и предлагает пользователю дать разрешение. Как только пользователь дает разрешение, страница перенаправляется на localhost с кодом авторизации или ошибкой (если это не разрешено). URL перенаправления выглядит следующим образом:
http://127.0.0.1:9004/?code=auth_code&
scope=email%20profile%20openid%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email&
authuser=0&
prompt=consent

Так что теперь я хочу параметр code в моем приложении. В документе Google говорится, что мне нужно создать прослушиватель HTTP, чтобы получить параметры. Поэтому я хочу настроить прослушиватель HTTP на этот порт (9004) и получить параметры. Какую библиотеку HTTP я могу использовать для решения этой проблемы?

Я не пытался подключиться к какой-либо библиотеке oauth для osx, и я хочу реализовать себя, но если есть библиотека, которая решает эту проблему с ограниченным количеством шаблонов, предложите их.

Спасибо.

1 Ответ

0 голосов
/ 05 апреля 2020

Я бы порекомендовал AppAuth framework для macOS и iOS. Он позаботится обо всем этом для вас и включает в себя возможность настроить HTTP-сервер в интерфейсе обратной связи.

...