2014-03-01 3 views
3

Я следую https://django-oauth-toolkit.readthedocs.org/en/0.7.0/rest-framework/getting_started.html для создания инструментария Django OAuth с рамкой отдыха.Django OAuth Toolkit setup issue

Как и на шаге 4: https://django-oauth-toolkit.readthedocs.org/en/0.7.0/rest-framework/getting_started.html#step-4-get-your-token-and-use-your-api

Он говорит, чтобы получить маркер, нам нужно сделать локоны как:

curl -X POST -d "grant_type=password&username=<user_name>&password=<password>" http://<client_id>:<client_secret>@localhost:8000/o/token/ 

Мой Фактический запрос завиток для этого процесса выглядит примерно так (для уже сформирован client_id и client_secret)

curl -X POST -d "grant_type=password&username=test&password=test" http://[email protected]=eCM8Fl::2O=!0ZjE5UCha0UW?Oie-XCVUn;[email protected][email protected]@Q7KPt7da.?Bg0o5kCt5tY:[email protected]:8000/o/token/ 

, которые не возвращают никакого ответа и выдает ошибку «Баш: 0: событие не найдено»

Неправильно в вызове?

+0

Попробуйте заключить в двойные или одинарные кавычки свой URL-адрес, поскольку он содержит много букв, не имеющих права на shell args без кавычек. –

+0

Я заметил, что у вас также есть знак и столбцы в client_id и client_secret. Я думаю, что curl parser не может различать клиент и client_secret там. –

ответ

1

Вы можете установить client_id и client_secret в качестве параметров POST:

curl -X POST -d "client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=password&username=YOUR_USERNAME&password=YOUR_PASSWORD" http://localhost:8000/o/token/ 
2

Издание это с «идентификатором клиента» и «клиент секретно», генерируемого во время применения регистра (http://django-oauth-toolkit.readthedocs.org/en/0.7.0/rest-framework/getting_started.html#step-3-register-an-application)

«идентификатор клиента» и «секрет клиента» содержит специальные символы, которые нельзя использовать с запросом на завиток указанным способом в документации.

Мы можем использовать его с путем, предложенные Альмальками как:

curl -X POST -d "client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=password&username=YOUR_USERNAME&password=YOUR_PASSWORD" http://localhost:8000/o/token/ 
0

я имел такую ​​же проблему, как ОП, и это было единственным решением, которое работало для меня:

curl -X POST -d 'grant_type=password&username=<username>&password=<password>' --user '<client_id>:<client_secret>' 'http://localhost:8000/o/token/' 

I нашел это решение на уровне Django OAuth Toolkit's Github issue #167. Там есть отличное объяснение.

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