2015-11-26 2 views
2

Я пытаюсь настроить стандартный процесс авторизации OAuth2 на API Mendeley из нашего веб-приложения Java. Следующий URL вызывается (я гашусь своим идентификатором клиента в этой должности):URI перенаправления не соответствует зарегистрированному для клиентского приложения API Mendeley API

https://api.mendeley.com/oauth/authorize?client_id=xxxx&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fapp%2Fconnect%2Fmendeley&scope=all&state=887e0b43-b8e7-41b3-a120-6063e4bdfed3

, но я получаю сообщение об ошибке:

{"error_message":"Redirection URI does not match the one registered for this application"} 

Я проверил это перенаправление URI в моем Mendeley Страница «Мои приложения» и значение redirect_uri - это точно такая же строка символов, как показано на странице. Пожалуйста, не могли бы вы рассказать мне, если что-то не так с этим URL-адресом, или если кодировка должна отличаться?

Спасибо за любые советы

Richard

ответ

1

Это была моя ошибка - я убегал в URL в разделе MyApplications в Mendeley DEV веб-страницы. Таким образом, URL-адрес, который вы регистрируете как ваш обратный вызов, должен быть дословным URL-адресом веб-сайта - должен быть закодирован только параметр запроса URL-адреса переадресации, поскольку он отправляется в запросе авторизации.

+1

Я борюсь с тем же. Я использую django, а не java. Я могу успешно получить код с моим redirect_url, но не могу его обменять на токен. Я http-закодировал мою строку, которую я передал, но не то, что я ввел на сайт Мендели. Я думаю, что я сделал именно то, что вы сделали. Но до сих пор не повезло. Если у вас есть какие-либо обновления, я буду рад их видеть. – mightypile

+1

У меня такая же проблема с Rails. – Ankit

+0

Правильный ответ. Я хотел бы подчеркнуть, что ваш обратный вызов должен быть ** verbatim ** URL-адресом веб-сайта. В моем случае мы использовали 'https: // www.' вместо' https: // ' –

Смежные вопросы

 Смежные вопросы