2012-02-29 65 views
1

我有一个Play网站,它是使用PHP的大型网站的一部分。 我希望其他网站对于在Play中登录的用户行为不同(例如,显示“登出”链接而不是“登录”)。如何知道用户是否登录到Play Framework?

什么是在第三方服务器应用程序中确定用户是否登录到Play的正确方法?我应该只检查一下PLAY_SESSION Cookie的存在吗?

我看到登录创建这个cookie,并注销清除它,所以它似乎是我正在寻找。

回答

2

这取决于你的意思是通过登录。

如果你的意思是访问的网站(访问播放服务器),那么这就是你想要的饼干。当您访问服务器并将会话ID存储在其他数据中时,会创建该Cookie。

如果您的意思是“使用用户名和密码(或其他身份验证系统)访问网站上的内容”,则不会。为此,您可能会在会话中存储一个用户标识,而该标识又将是Play cookie中的一个字段,并且该字段是您需要检查的字段。

+0

所以我应该解析cookie并提取用户字段?我的会话cookie包含这个字符串(我截断了它的复制粘贴):'%00username%3Amyemailaddress%40gmail.com' - 你会建议在这个cookie里面寻找'%00username%3A'吗? – ripper234 2012-02-29 09:06:08

+1

您只需在会话cookie中标识一个ID,告诉“该用户暂时登录”。佩雷解释得很好;) – mandubian 2012-02-29 09:11:29

+0

@ ripper234是的,检查“用户名”,如果它在那里,你知道它被认证。如果您想要用户标识,请检索该值。 – 2012-02-29 09:59:25

0

我认为正确的方法是在模板中测试session["username"]的存在,Groovy代码如#if {session.username}

+0

我没有在里面玩,所以我没有直接访问会话变量。 – ripper234 2012-02-29 09:03:38

+0

@ ripper234在任何情况下,这个解决方案都不是标准的,这个id可以使用dev想要的任何名字来存储 – 2012-02-29 09:58:34

+0

@PereVillega,当然是的。 – ripper234 2012-02-29 10:11:32

相关问题