微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 使用OpenID进行身份验证后,在REST应用程序中管理会话

我正在构建一个RESTful应用程序.我计划使用OpenID进行用户身份验证.目前,我正在使用 LightOpenID进行OpenID身份验证,我可以对用户进行身份验证.

我的问题是下一步是什么?认证后!

>因为它是一个REST应用程序,我将不得不使用Cookie进行会话管理..对吗?
>我在Cookies中存储了什么值?
>如何验证会话和用户注销?

我确实搜索了有关实现的示例,但所有示例都停止了身份验证,并且没有谈论会话管理!我想知道您如何管理应用程序中的会话,以及可能的实施方法中的最佳实践和关注点.

如果您了解任何参考实施,请提供链接.

重要:

首先,您应该记住一些重要的安全建议:

>您还应该阅读有关http-only cookies以及如何到configure them properly using PHP内容.

>你应该be wary of session_fixation并使用session_regenerate_id保护自己免受它.我也发现有一些有趣的countermeasures at the wikipedia of session fixation.

你的问题:

Since,its a REST application,I will
have to use Cookies for session
management.. right?

使用会话是最安全的(最好的),但当然还有更多的solutions to session management.但如果你只使用cookie(没有PHP $_SESSION),那么你当然应该加密你的cookie.但我建议你只使用$_SESSION.

What values do I store in Cookies?

您不会在cookie中存储任何内容. $_SESSION为您创建唯一的cookie(自动=>您不必考虑它).您放入$_SESSION的所有内容都存储在服务器上,因此用户无法读取此内容.您可以存储您希望存储在会话中的任何信息,但请记住,最好不要在应用程序中存储敏感数据(密码,信用卡,密码等).我已经知道你的$_SESSION存储在服务器上,但是具有与存储在光盘(或数据库)上的会话匹配的唯一标识符的cookie可以是guessed(spoofed).

How do I validate the session?

您可以通过检查会话中存储的信息来验证会话.我假设你存储至少$_SESSION [‘id’] = $openid->身份;在你的会话中.请记住,在用户使用openid登录您的网站后,您应该regenerate your session(id)以防止session fixation.

How do I logout a user?

你只需调用session_destroy,就会删除会话中存储的所有数据.

我希望这能解释你所有的问题.

PS:

A session in the cookie jar为您提供了会话的基本介绍(虽然我没有看到它提到会话固定:$).

原文地址:https://www.jb51.cc/php/134446.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐