我已经在我的 CodeIgniter 应用程序中编写了注册页面。一切正常,它使用 PHPass 库进行密码散列。
现在,我想编写系统的登录部分,并且想知道我将如何使用 CodeIgniter 来执行此操作。我对正确(和最佳实践)的做法感到困惑。我是否只接受用户登录凭据,确定它们是否正确,如果正确,为该用户设置会话?他们需要饼干吗?该cookie是否需要加密?我是否需要在我的数据库中跟踪用户(CodeIgniter 可以为我执行此操作)并注意 IP 地址更改或主机名更改?
我已经在我的 CodeIgniter 应用程序中编写了注册页面。一切正常,它使用 PHPass 库进行密码散列。
现在,我想编写系统的登录部分,并且想知道我将如何使用 CodeIgniter 来执行此操作。我对正确(和最佳实践)的做法感到困惑。我是否只接受用户登录凭据,确定它们是否正确,如果正确,为该用户设置会话?他们需要饼干吗?该cookie是否需要加密?我是否需要在我的数据库中跟踪用户(CodeIgniter 可以为我执行此操作)并注意 IP 地址更改或主机名更改?
有许多 auth 库,但由于您是初学者,我坚信最好自己制作一些东西(除非您的时间框架非常严格)。因为,正如我的同事曾经告诉我的那样,如果不犯错误,您将无法理解为什么更好的解决方案实际上更好。
回到你的实际问题。
我是否只接受用户登录凭据,确定它们是否正确,如果正确,为该用户设置会话?
嗯,是。没有其他合理的方法可以做到这一点,是吗?:)
他们需要饼干吗?
会话 ID 自动存储在 cookie 中。您可以将其他选项存储在 cookie 中,但请记住 cookie 可能会被盗(因此保存用户名/cookie 不是一个好主意)。此外,人们越来越多地使用不止一种设备(例如平板电脑和台式机),因此对使用 cookie 更加明智。
该cookie是否需要加密?
我相信我已经回答了。
您可能应该从这里开始:http ://codeigniter.com/wiki/Category:Libraries::Authentication和http://codeigniter.com/wiki/Category:Libraries::Authorization
来自 CI Wiki:身份验证与授权不同。身份验证回答了“这个用户是他们声称的那个用户吗?”这个问题。授权回答了“给定此用户,他们是否有权执行此操作?”的问题</p>
为什么不使用众多 CI 身份验证库之一? 我应该如何为 CodeIgniter 选择认证库?
您可以查看 CI wiki 了解您所追求的所有特定细节:http: //codeigniter.com/wiki/auth