V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  pein  ›  全部回复第 9 页 / 共 16 页
回复总数  307
1  2  3  4  5  6  7  8  9  10 ... 16  
2015-10-19 11:38:32 +08:00
回复了 solaro 创建的主题 PHP 告诉你 laravel 为什么在国内流行不起来
@AbrahamGreyson 首先感谢打了那么多字来讲述流程,但不知道你亲自试过没有,这种方式对于把默认方式改为 md5(password+salt)方式是无效的:(
你的方法只是改变了 hash 方式而已,而 hash 方式只是整个登录验证流程中的一部分,整个登陆流程在 Illuminate\Auth\EloquentUserProvider 的 validateCredentials()方法中实现的,是被它控制的,其中调用 check()方法只有两个参数,它所 use 的 HasherContract 是 Illuminate\Contracts\Hashing ,这些都是在 vendor 中不能改的。
你的实现方式也是有问题的,因为 contract 是一组接口,原则上是不能改的。它的作用是由其它类来实现它,这个接口是由各种类来实现的,用户只要更换一下实现的类就行了,这样就降低了耦合非常方便。这边要达到修改 hash 方式的目的并不需要改 contract ,只需要更换一下实现 contract 的类就行了,步骤类似你的第 2 第 3 步。
概括一下就是你的方法虽然连 contract 类都改了,但还是无法影响到整个验证流程即 EloquentUserProvider 中的 validateCredentials()方法, hash 方法确实是可以改的,可以自己弄一个然后在 make()里面把 bcrypt 改成 md5 或其它,但这边还需要获取数据库中的 salt ,这个 salt 是无法在自己的 hash 方法中获得的,甚至你连在自己的 make()方法中查数据库获得 salt 都无法做到,因为查询的依据 email 你没有办法获得,它在流程 validateCredentials()中并没有把$credentials 数组传给 make()方法。
也许这个加密验证最终是能改的,但也肯定非常复杂,不是简单几部能搞定,应该要重写很多东西。有什么说得不对的地方请指正,欢迎交流。
2015-10-16 20:54:59 +08:00
回复了 solaro 创建的主题 PHP 告诉你 laravel 为什么在国内流行不起来
@xuxu 这个早就看过了,你可以去看一下 EloquentUserProvider.php 中调用 check()方法的地方,那边根本就没有给出第三个参数。
2015-10-16 15:05:38 +08:00
回复了 solaro 创建的主题 PHP 告诉你 laravel 为什么在国内流行不起来
Laravel 社区现在新出来了不少,但其实就那么点人,活跃的一直都是那几个老面孔。我认为 LZ 说的大部分还是比较中肯的,代码可读性差是因为用了很多设计模式,最后弄得一些编辑器都追踪不到代码了。中文资料不足其实严格来说不能算是缺点,主要是它的英文文档写得也不咋的,基础的都写了,进一步深层次的内容就只是含糊提一下敷衍了事。
2015-10-16 14:45:39 +08:00
回复了 solaro 创建的主题 PHP 告诉你 laravel 为什么在国内流行不起来
@timsims 即使自己写 HasherService ,更换加密函数是可以的,但 salt 是无法获取的,除非你把它整个验证流程都重写。
2015-10-16 14:41:07 +08:00
回复了 solaro 创建的主题 PHP 告诉你 laravel 为什么在国内流行不起来
@raincious 为什么要改上层的东西?可能是因为历史遗留问题,也可能是因为仅仅不想用 bcrypt ,毕竟速度巨慢很吃计算资源,人少看不出来,访问并发一多的话就得加服务器了。
其实我每次提这个问题都有很多人会站出来(包括国外社区),然后说 bcrypt 如何如何安全,其它的如何如何过时,可是我只是单纯的想问,我就想换,能换吗?
如果一个框架连换个默认加密方式都极其费劲的话,那何来灵活,何来优雅?
2015-10-16 13:12:31 +08:00
回复了 solaro 创建的主题 PHP 告诉你 laravel 为什么在国内流行不起来
Laravel 用起来确实比较闹心,比如我想把它默认的 bcrypt 加密验证方式改成 md5+salt ,在不改 vendor 的情况下很麻烦。。。
2015-10-09 09:51:55 +08:00
回复了 mrhero 创建的主题 PHP 用 PHP 开发 api 接口有木有?
2015-10-09 09:31:02 +08:00
回复了 jellybool 创建的主题 PHP Laravel 5.1 整套视频已录制完成
貌似和 Jeffrey Way 录的内容差不多
2015-10-07 19:22:05 +08:00
回复了 Andor_Chen 创建的主题 PHP 送几本《Modern PHP(中文版)》
看下运气如何
2015-09-30 08:54:37 +08:00
回复了 nonfu 创建的主题 PHP 为什么 Laravel 会成为最成功最流行的 PHP 框架
@matsuijurina 一片欢乐祥和的气氛 23333 ……想想其实这样也挺好的,至少不会把时间和口水浪费在争论性能等问题上了,觉得 Laravel 慢可以试试他的弟弟 Lumen XD
2015-09-30 08:46:11 +08:00
回复了 nonfu 创建的主题 PHP 为什么 Laravel 会成为最成功最流行的 PHP 框架
Laravel 吹比吹得好啊,模块化、安全、优雅、艺术品……当然实力也是有的。
貌似仅仅照搬了 github 的 readme ,最好是可以让作者另外再吹吹 B ,毕竟 github 上有些项目说明不得不用英文写,吹起来不方便,如果用中文的话肯定更棒。
2015-09-28 09:31:09 +08:00
回复了 letv 创建的主题 程序员 要怎么让自己能够在业余时间也喜欢上写代码呢?
其实你和我差不多,不过我自己还做做感兴趣的小项目之类的,建议你也弄一个小项目,不要管那个项目做出来有没有用,对什么感兴趣就去做,只要有一个想法,就一步一步去实现它
2015-09-28 09:25:38 +08:00
回复了 letv 创建的主题 程序员 要怎么让自己能够在业余时间也喜欢上写代码呢?
我是工作时间撸码积极性挺高的,但是一到周末或晚上回家以后,就完全不想撸码了。。。在家没气氛,诱惑太多,宁愿在线看看视频也比撸码有意思
2015-09-27 00:58:21 +08:00
回复了 sneezry 创建的主题 程序员 聊聊我找工作的经历
鸟哥我只认亚一程
2015-09-25 22:48:23 +08:00
回复了 pein 创建的主题 问与答 为什么我换了国外 DNS,却还是被电信劫持了?
@Explorare
@xzchina
如果是 likexian 说的那样,那 DNS 怎么搞都是没用的了。
2015-09-25 22:46:47 +08:00
回复了 pein 创建的主题 问与答 为什么我换了国外 DNS,却还是被电信劫持了?
@likexian 你的意思是他能篡改任意页面代码然后再返回给你?这不就是相当于中间人吗,这样的话确实就只有 https 能防止了
2015-09-25 22:41:40 +08:00
回复了 pein 创建的主题 问与答 为什么我换了国外 DNS,却还是被电信劫持了?
@ScotGu 太流氓了,这样做有什么意义呢,那个业务提醒页面根本没人要看。
1  2  3  4  5  6  7  8  9  10 ... 16  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1089 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 18:08 · PVG 02:08 · LAX 10:08 · JFK 13:08
♥ Do have faith in what you're doing.