Как сделать так, чтобы пользователи «переподключались» со звуковым облаком на каждой странице, чтобы перезагрузить?

Я использую Javascript SDK внутри приложения node.js (Express).

Подключение пользователей работает нормально, но соединение не сохраняется между перезагрузками страницы. Это поведение по умолчанию, или пользователь должен оставаться подключенным в новых запросах?

Нужно ли использовать аутентификацию по токену OAuth, и если да, то как это можно сделать с помощью JS-SDK? Внутри всплывающего окна «Разрешения» пользователи уже вошли в систему с помощью soundlcoud. (просто нужно каждый раз нажимать кнопку «подключиться»)

 Max Girkens20 июн. 2012 г., 13:54
... как уже упоминалось в потоке, получить токен доступа с помощью window.SC.storage (). getItem ("SC.accessToken")
 Max Girkens20 июн. 2012 г., 12:55
Прочитав эту веткуgroups.google.com/group/soundcloudapi/browse_thread/thread/… я нашел какой-то обходной путь, сохранив токен доступа в cookie-файле и установив window.SC.storage (). setItem ("SC.accessToken", & lt; COOKIE_VALUE & gt;) после перезагрузки страницы. в то время как это делает трюк для меня, я по-прежнему очень хочу знать, есть ли более официальный способ сделать это.

Ответы на вопрос(2)

Решение Вопроса

Для сайта Next SoundCloud мы сохраняем токен в localStorage (конечно, пока пользователь не выйдет из системы). В каждом AJAX-запросе к API от внешнего интерфейса мы помещаем токен oauth в заголовок запроса:

jqXHR.setRequestHeader('Authorization', 'OAuth ' + the_oauth_token);
 Max Girkens20 июн. 2012 г., 20:45
круто, чертовски хорошо :)

я поделюсь своим ответом для тех, кто не удовлетворен текущими ответами для автоматического ответа:

Получение access_token:

Мне пришлось определить функции получения и установки cookie, а затем я использую функции для установки и получения функции, содержащей маркер доступа. Я не собираюсь давать эти функции для краткости, но вы легко можете найти их с помощью поиска Google. Затем я использую эту строку кода, чтобы получить токен доступа к SC (как только пользователь прошел аутентификацию в первый раз)

SC.accessToken()

Установка токена:

Так что это своего рода слон в комнате, на мой взгляд, по какой-то причине никто не упомянул. Как в **** вы подключаетесь с SC с помощью токена доступа? Вы устанавливаете это как oauth param? На каждый звонок проходить это? Ну, после экспериментов с размещением параметра в каждом отдельном месте, которое я мог подумать, я обнаружил, что вы должны сделать что-то вроде этого:

            SC.initialize({
              client_id: '[removed for security reasons]',
              client_secret: '[removed for security reasons]',
              redirect_uri: '[removed for security reasons]',
              access_token: getCookie("sc_lm2"),
              scope: 'non-expiring'
            }); 
//Where "sc_lm2" is the name of my cookie

Надеюсь, что помогает! Мне понадобилось время, чтобы понять это для такой простой вещи

EDIT

Использование PHP и Wordpress:

$json = wp_remote_get("http://api.soundcloud.com/users/[user_id]/tracks.json?client_id=[client_id]");
$soundcloudData = json_decode($json['body'],true);

(заменить функциональность cURL, если вы не используете Wordpress). @krafty Я предполагаю, что вы просто изменили бы конечную точку с & quot; / track & quot; для "/ пользователей" но я не могу сказать, что мне когда-либо действительно нужно было захватывать что-либо, кроме треков, с помощью Soundcloud API. Надеюсь, это поможет, хотя я не уверен, что полностью понимаю, что именно вы пытаетесь достичь (или, скорее, как именно вы это делаете) - вы пытаетесь разрешить вход пользователей? Если вы хотите полностью объяснить, что вы пытаетесь выполнить, и какие шаги вы предпринимаете, я был бы рад попробовать.

 19 нояб. 2013 г., 22:02
Некоторое время искал это, и это прекрасно. Спасибо!
 05 мая 2014 г., 04:02
Вы на самом деле помещаете свой секретный ключ в javascript? Я не могу представить, что это решение, поэтому я должен предположить, что я что-то упустил. Я пытаюсь подобрать объект пользователя со страницы перенаправления, где мой токен доступа указан в параметрах URL, возвращаемых сервером SoundCloud, но не могу найти документацию
 09 дек. 2013 г., 16:33
Я продолжал получать экраны входа в систему для каждого запроса, который я хотел сделать. Однако если вы перенаправляете после аутентификации пользователя и вызываете SC.initialize, передавая access_token (который я сохранил в localstore), вы можете просто вызвать SC.get () и т. Д. Без необходимости каждый раз вызывать SC.connect. Спасибо, что заметили это
 06 мая 2014 г., 01:57
Будь то Javascript или Android, если секретный ключ не вызывается безопасно из серверной части кода, вы оставляете свое королевство открытым. Если бы кто-то прочитал ваш javascript или, например, в случае Android, воспользуйтесь утилитой для чтения вашего источника, он может легко получить ваши учетные данные SC и выдать себя за ваш аккаунт с точки зрения SoundCloud.
 20 сент. 2013 г., 21:49
О да, я также хотел бы отметить, что большая часть этого может включать в себя ваш client_secret, но я лично не проверял эту теорию. Хотелось бы знать!

Ваш ответ на вопрос