【发布时间】:2015-04-27 15:07:46
【问题描述】:
我想在数据库中加密电子邮件地址。使用 mutators 我可以为我的 laravel web-app 加密和解密模型属性。
问题在于电子邮件属性用于身份验证。因此,对电子邮件使用 mutators 似乎完全破坏了我的应用程序,大概是通过 Auth::check()、id()、login() 等。
我曾考虑编写自定义身份验证驱动程序,但无法正常工作。
我只是想知道在哪里重载模型以在 set 上添加加密并在 get 上解密,这将与 laravel 身份验证方法兼容。
【问题讨论】:
-
问题是 Laravel 使用简单的 SQL 来查找用户。要执行您想要的操作,您必须获取所有用户解密电子邮件地址,然后通过电子邮件搜索用户。我不认为这可以通过覆盖一个方法来完成......
-
你不能做一个加密的电子邮件检查。因此,从用户(他们的电子邮件)那里获取输入。使用与存储在数据库中的方法相同的方法加密他们的电子邮件。然后将这些与身份验证值进行比较?
-
@ChrisTownsend 这将是快速破解,但我想知道是否可以在尊重 laravel 现有身份验证方法的同时完成。
-
我想知道您是否可以扩展身份验证类,方法是添加到此 laravel.com/docs/4.2/extending#authentication 并将您自己的添加到界面中
-
是的,已经试过了,可悲的是根本无法让它工作
标签: php authentication encryption laravel-4