Передача параметров состояния через поток OAuth
У нас есть мультитенантное приложение (AccountingSuite.com), и мы хотим, чтобы в приложении была кнопка "Подключиться к Dwolla".
Кнопка откроется:
https://www.dwolla.com/oauth/v2/authenticate?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&state={instance_id}
обратите внимание, что в конце есть параметр состояния, идентифицирующий экземпляр в нашем мультитенантном приложении. После успешной аутентификации URI ответа должен содержать state
параметр, в противном случае мы не можем выяснить, какой экземпляр отправил запрос на подключение. В настоящее время state
параметр отбрасывается при возврате.
Это довольно стандартный поток OAuth (см., Например, Stripe).
Пожалуйста, дайте мне то, что я не правильно делаю, или пропустите параметр состояния в потоке OAuth.
1 ответ
Пока Дволла не поддерживает state
Параметр, в качестве альтернативы, можно указать state
параметр в качестве переменной строки запроса в return_uri
,
Например, если вы использовали этот возвращаемый URI:
http://www.example.com/somepage?state=foobar
После предоставления разрешений вашему приложению на Dwolla, пользователь будет перенаправлен на ваше приложение через:
http://www.example.com/somepage?state=foobar&code={OAuth Verification Code}