如何使用 javascript 在 Liferay 中检索用户个人资料图片
Posted
技术标签:
【中文标题】如何使用 javascript 在 Liferay 中检索用户个人资料图片【英文标题】:How to retrieve a user profile picture in Liferay with javascript 【发布时间】:2020-08-15 00:21:44 【问题描述】:我正在尝试使用 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=???????'
);
如何使用 javascript 获取 img_id_token?
【问题讨论】:
【参考方案1】:不是您问题的完整答案,但可能会让您走上正确的道路:
(免责声明:我在这里使用的是 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 端并不容易获得(无需寻找),但模仿摘要,您可以自己创建它。 p>
【讨论】:
以上是关于如何使用 javascript 在 Liferay 中检索用户个人资料图片的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 liferay7 中覆盖 liferay 模块?
如何使用管理员 Liferay 将我的自定义 portlet 拖/添加到 liferay 页面?