Я создаю приложение для iOS с воспроизведением Spotify с бэкэндом django. Это мой первый программный проект, и я немного зациклен на oauth2. Я знаю, что мне нужно выполнить поток кода авторизации на стороне сервера, чтобы получить обновляемые пользовательские токены.
Я настроил django-allauth в своем проекте django и смог заставить его работать для аутентификации пользователей Spotify, несмотря на ограниченную документацию для Spotify. Я могу позвонить localhost: 8000 / users / spotify / login, и код будет обновлен, а токен vlid-доступа будет сохранен в базе данных (сделан авторизованный запрос на Postman). Я верю, что это сработает, когда я внесу изменения и в героку, а у меня пока нет.
Возвращаясь к своему iOS-приложению, я пытаюсь использовать sdk для потоковой передачи песен. Я запускаю SPTAudioStreamingController.sharedInstance () с моим идентификатором клиента, без проблем, а затем пытаюсь войти в систему с жестко запрограммированным маркером доступа, но безуспешно. Я знаю, что мне чего-то не хватает, возможно, это связано с сеансом, который возвращается, когда аутентификация полностью выполняется через iOS. Я надеюсь получить разъяснения о том, как завершить эту реализацию и правильно войти в SDK, используя токены доступа, хранящиеся в моем бэкэнде django. Это функция, которая пытается настроить spotify и войти в систему. Вызывается в приложении-делегате.
print("Setting up spotify")
SPTAuth.defaultInstance().clientID = "hardcodedclientID"
SPTAuth.defaultInstance().redirectURL = URL(string: "hardcodedredirectURL")
SPTAuth.defaultInstance().sessionUserDefaultsKey = "spotifySessionKey"
SPTAuth.defaultInstance().requestedScopes = [SPTAuthStreamingScope, SPTAuthUserLibraryReadScope]
do {
try SPTAudioStreamingController.sharedInstance().start(withClientId: "hardcodedclientID")
} catch {
fatalError("Couldn't start Spotify SDK")
}
print("shared instance started")
SPTAudioStreamingController.sharedInstance().login(withAccessToken: hardCodedAccessTokenFromDjango)
print(SPTAudioStreamingController.sharedInstance().loggedIn)
Я установил все настройки приложения, которые мне нужны, в соответствии с двумя учебниками, которым я следовал здесь и здесь. Я знаю, что не смогу жестко закодировать информацию так, но у меня сложилось впечатление, что я должен быть в состоянии войти (withaccesstoken :), просто используя токен доступа, который я имел. Я пытаюсь найти лучший способ отправки моего токена доступа через My Django REST API и затем аутентифицировать SDK с его помощью.