防止缓存登录信息

时间:2014-12-15 22:11:36

标签: caching typo3

我正在使用 femanager 来管理用户注册,登录和注销。

与许多其他网站一样,我想在页面顶部显示一些用户信息(使用Boostraps mini-navbar )。

  • 如果用户已注销,则应如下所示: Call for registration if the user is not logged in
  • 如果用户已登录,则应显示以下信息: Greetings if the user is logged in

作为Typo3的初学者,我使用Typo Script和部分流体模板实现了这一点。 Typo脚本读取当前用户(用户ID和电子邮件地址)。

userdata = COA_INT
userdata {
  10 = TEXT
  10.data = TSFE:fe_user|user|uid
  20 = TEXT
  20.data = TSFE:fe_user|user|username
}

部分使用用户ID检查用户是否已登录或注销。

<f:if condition="{f:cObject(typoscriptObjectPath: 'userdata.10')} > 0">
  <f:then>
      <!-- user is logged in -->
      <span class="greeting">
        <i class="fa fa-user"></i> <f:cObject typoscriptObjectPath="userdata.20" />
      </span>
      <f:link.page pageUid="319" additionalParams="{logintype: 'logout'}" class="pull-right"><i class="fa fa-power-off"></i> Logout</f:link.page>
  </f:then>
  <f:else>
     <!-- user is logged out -->
      <span class="greeting">
        Test it for free
      </span>
      <f:link.page pageUid="317" class="pull-right"><i class="fa fa-arrow-circle-down"></i> Register</f:link.page>
      <f:link.page pageUid="319" class="pull-right"><i class="fa fa fa-sign-in"></i> Log in</f:link.page>
  </f:else>
</f:if>

这可以正常但我有缓存问题。有时会为其他用户显示迷你导航栏。

我的问题是:如何阻止部分缓存?

1 个答案:

答案 0 :(得分:0)

部分缓存有时会很棘手......

查看VHS viewhelper集合中的security viewhelper。它有一些很好的功能,涵盖了你的情况:

<v:security.allow anyFrontendUser="TRUE">
    <f:then><!-- protected information displayed --></f:then>
    <f:else><!-- link to login form displayed --></f:else>
</v:security.allow>

有关详细信息,请参阅documenation