Как получить изображение профиля пользователя в Liferay с помощью javascript - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь получить изображение профиля пользователя с javascript

  Liferay.Service('/user/get-user-by-screen-name',{
    companyId: Liferay.ThemeDisplay.getCompanyId(),
    screenName: 'marcio.sena'
  },
  function(user) {
    console.log(user)
    var url = '/image/user_portrait?img_id='+user.portraitId+'&&img_id_token=???????'
  }
);

как мне получить img_id_token с javascript?

1 Ответ

0 голосов
/ 04 мая 2020

Не полный ответ на ваш вопрос, но что-то, что может помочь вам разобраться:

(Отказ от ответственности: я использую источник 7.2 здесь, даже если вы пометите Liferay 6, но вы можете повторить действия над исходным кодом, соответствующим вашей версии. Для удобства чтения я сократил пути и удалил несколько строк)

me@here:/..../liferay-dxp-7.2.10.1-sp1/src$ grep -r -5 img_id_token .
..../WebServerServlet.java-
..../WebServerServlet.java-           if (_userFileUploadsSettings.isImageCheckToken() && (imageId > 0)) {
..../WebServerServlet.java-                   String imageIdToken = ParamUtil.getString(
..../WebServerServlet.java:                           httpServletRequest, "img_id_token");
..../WebServerServlet.java-
..../WebServerServlet.java-                   if (user == null) {
..../WebServerServlet.java-                           user = UserLocalServiceUtil.fetchUserByPortraitId(imageId);
--
..../UserConstants.java-         if (_userFileUploadsSettings.isImageCheckToken()) {
..../UserConstants.java:                 sb.append("&img_id_token=");
..../UserConstants.java-                 sb.append(URLCodec.encodeURL(DigesterUtil.digest(userUuid)));
..../UserConstants.java-         }

me@here:/..../liferay-dxp-7.2.10.1-sp1/src$ grep -r -5 imageIdToken .
..../WebServerServlet.java-
..../WebServerServlet.java-           if (_userFileUploadsSettings.isImageCheckToken() && (imageId > 0)) {
..../WebServerServlet.java:                   String imageIdToken = ParamUtil.getString(
..../WebServerServlet.java-                           httpServletRequest, "img_id_token");
..../WebServerServlet.java-                   }
..../WebServerServlet.java-
..../WebServerServlet.java-                   if ((user != null) &&
..../WebServerServlet.java:                           !imageIdToken.equals(DigesterUtil.digest(user.getUserUuid()))) {
..../WebServerServlet.java-
..../WebServerServlet.java-                           return 0;

Еда на вынос:

  • Маркер настраивается
  • Это дайджест UUID

То, как он генерируется, заставляет меня подозревать, что он может не будет легко доступен на стороне JS ( без поиска), но имитируя дайджест, вы можете создать его самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...