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