2011-06-06 155 views
1

我还没有真正使用它,但我正在阅读the tutorial here,并从我的理解,一旦你注释到它的控制器内,它完全阻止用户关闭,只显示窗体。玩框架安全模块

我想知道的是如何简单地隐藏网站的某些部分。比如当用户未登录时在顶部显示登录表单并在登录时显示“配置文件”按钮。当用户未登录时禁用发布功能等,而不隐藏来宾的所有内容。

您是否需要为这些情况创建单独的视图,或者只需在视图内查看用户是否登录?你将如何使用安全模块进行检查?

回答

3

Play安全模块authenticate()在成功登录/认证时在会话中存储'用户名'。

您可以在视图中使用此会话属性来检查用户是否已登录,然后相应地更改曲目。

#{if session.username } 
    <!-- You can show users' profile --> 
#{/if} 
#{else} 
    <!-- Show login form now. You can create a login template-tag form and call it here. --> 
#{/else} 
+0

一旦欧使用'@With(Secure.class)'注释,一切得到的从用户挡在外面,但..并且没有标注我无法访问会话对象......不知道如何做这个? – networkprofile 2011-06-09 19:53:15

+0

如果需要,您需要扩展Secure类并覆盖check()/ authenticate()。 http://www.playframework.org/documentation/1.2.1/secure – sojin 2011-06-15 12:36:54

+0

请检查以及http://groups.google.com/group/play-framework/browse_thread/thread/60e6080426d2ee92/53e7d85f58ca3367 – sojin 2011-06-15 13:26:25