我的AEM世界中有一些代码可以执行对restlet服务的形式ajax调用。我想知道的是,当前登录UserId的代码是什么?该页面的session = false。
AEM是否有我可以提出的cookie? 在表单中我有一个名为cq_csrf_token的隐藏字段,但我没有看到它与CRXDE中的任何内容匹配。
如果你知道听到你的意见会很酷。
答案 0 :(得分:3)
您确定用户已登录吗? 您可以从Session对象中获取当前登录的用户:
Session session = resourceResolver.adaptTo(Session.class);
session.getUserID();
另请参阅此Stackoverflow帖子:https://stackoverflow.com/a/22549922/1377893
答案 1 :(得分:2)
如果您想在java中获取用户,可以使用资源解析器API 。
Session session = resourceResolver.adaptTo(Session.class);
session.getUserID();
如果您想让用户在前端,您可以使用个人资料数据管理器API
<script>
CQ_Analytics.ProfileDataMgr.data
</script>
会为您提供有关当前登录用户的信息。
对于您的第二个问题,request.getCookies()
会将所有Cookie作为Cookie []提供给您。
希望这有帮助
答案 2 :(得分:1)
如果没有用户登录,AEM会将用户视为“匿名”用户。
试试这个:
while answer < low or answer > high:
try:
answer = int(input(prompt))
except ValueError:
print('Invalid data type!')
else:
if answer < low or answer > high:
print('Invalid!')
如果用户未登录,则应打印用户名..默认情况下,您将看到“匿名”作为用户。
答案 3 :(得分:0)
您可以通过将以下代码放入JSP中来查看用户ID。
<%@include file="/libs/foundation/global.jsp"%>
<%= resourceResolver.adaptTo(Session.class).getUserID() %>
BTW,CSRF令牌是为了保护站点免受跨站点请求伪造攻击。
有关详情,请参阅此页:https://docs.adobe.com/docs/en/aem/6-2/develop/security/csrf-protection.html