Laravel 登陆认证如何区分大小写?
请问注册用户名为laravel用LARAVEL也能登陆,example@mail.com用example@MAIL.COM也是能登陆?不知道问题在哪里,validator的原因?要如何解决呢?
这是一个正常现象,大部分系统用户名大小写不敏感的。
如: https://github.com/aufree/ 和 https://github.com/Aufree/ 是一样的,能告诉我为什么这是一个问题吗?解决起来满费劲的
邮箱域名的话,RFC 4343 标准 - Domain Name System (DNS) Case Insensitivity Clarification 规定了:
所以即使邮箱区分大小写也是错误的做法。
@Summer 你这么一说好像这问题还没什么大不了...可是就是强迫症想让Laravel 和laravel是两个不同的用户,因为也有挺多站点是这种方案,刚试了试QQ邮箱,用example@QQ.COM是登不上去的。然后google一番找不到办法...
所以还是想请教以下可以从哪方面入手解决,虽然麻烦点,也没多大意义,还是想搞定他
数据库 我一般设计都是utf8_general_ci 这个是不区分大小写的 不知道你数据库是不是这个编码
百度了下
一种方法是可以设置表或行的collation,使其为binary或case sensitive。在MySQL中,对于Column Collate其约定的命名方法如下:
*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
*_cs: case sensitive collation,区分大小写
*_ci: case insensitive collation,不区分大小写
@Summer 你好,之前我提到的问题应该出在数据库上面0.0[尴尬.jpg],在mysql终端执行
查询到的数据和
是一样的,所以应该是数据库排列规则的问题。
@awh521 好的,谢谢你的回复!茅塞顿开0.0,以前其实遇到过这个问题,因为挺久没写后台代码了,又忘记了,也没有写Blog的习惯
@MonsterOOF Laravel 默认使用的
utf8_unicode_ci
@江边望海 sublime text
@MonsterOOF @江边望海 Atom
@Summer 我就说嘛,不像Sublime :smile: