如何在Liferay中用javascript检索用户的个人资料图片?

问题描述 投票:0回答:1

我想用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?

javascript liferay-6
1个回答
0
投票

不是你问题的完整答案,但可能会让你在正确的轨道上找到答案。

(免责声明:我在这里使用的是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端不现成(不找),但模仿文摘,可以自己创建。

© www.soinside.com 2019 - 2024. All rights reserved.