2015-04-30 3 views
2

Я пытаюсь разработать мобильное приложение javascript, которое будет использовать портал liferay jsonws api. У меня есть имя пользователя и пароль. Если я попробую запрос с помощью curl с базовым auth, я могу получить доступ к ресурсам, но я не получаю токен взамен, я получаю файл cookie с sessionid, и я должен включать имя пользователя и пароль в каждом запросе. Я не контролирую портал. Как получить токен p_auth?Liferay jsonws api: как я могу получить p_auth от клиента?

+0

Вы пытались: Liferay.authToken. Он находится в одном из файлов js liferay. Проверьте источник жизни. – Marcin

+0

Благодарим вас за ответ. У меня нет доступа к самому порталу; кто-то еще разработал json api, используя liferay 6.2, и я ни на что не могу контролировать. Я думал, что у меня будет конечная точка входа, но пока кажется, что это не так. Является ли Liferay как js-библиотека, которая может использоваться во внешнем приложении? Из документации это действительно неясно, и люди, отвечающие за портал, на самом деле не разделяют много, просто дал мне пользователя. – alex

ответ

0

Беспокойный параметр p_auth используется для предотвращения атаки CSRF. Вы можете получить значение с этим кодом:

String pAuth = com.liferay.portal.security.auth.AuthTokenUtil.getToken(request); 

TokenUtil является частью ядра Liferay, так что вы должны создать крюк, потому что СПЯ должен находиться в директории Liferay, а не в плагине или портлета потому что в других classpath у вас нет доступа к этому объекту.

+0

Если 'p_auth' должен предотвратить CSRF, то почему он доступен как открытый доступ через объект Liferay.authToken' в консоли браузера? –

+1

Liferay.authToken обновляется при каждом запросе на портал. Следующий запрос должен передать последний токен, возвращенный порталом, иначе этот запрос будет проигнорирован. – drenedo

0

Вы можете получить токен аутентификации (p_auth) с помощью предопределенной переменной Liferay.authToken.

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