Laravel 实战开发知乎:实现找回密码
打赏作者

zyzplzyz

请问下,怎么贴图?我现在能收到重置密码的邮件地址为 http://zhihu.dev/password/reset/333c84e2bb6bef754dc8da36af4c74f6033edbff4160eed08fa2da9f0aaa3382

但是我点击连接确实无法访问,请问楼主这是我哪里没有配置好吗?

JellyBool 回复 zyzplzyz

首先是,如何贴图,语法看这里

https://laravist.com/discuss/markdown/learn-to-use-markdown-21

如果你是 github 用户,可以直接从这里传图片:

https://github.com/Laravist/help/issues/13

2.无法访问具体是什么错。

JellyBool 回复 zyzplzyz

大概是因为这个多了一个 http 吧,检查一下你的代码

http://http//zhihu.dev/password/reset/333c84e2bb6bef754dc8da36af4c74f6033edbff4160eed08fa2da9f0aaa3382
zyzplzyz 回复 JellyBool

好的,我来检查下,谢谢

zyzplzyz 回复 JellyBool

是我设置的outlook模板时,有地方弄错了,谢谢了,群主讲的很棒,希望能快点的看到下一节,很期待

JellyBool 回复 zyzplzyz

恩,我刚刚就开始录制视频了。这几天是因为服务器被怼的事情打乱了,明天就开始陆续更视频了

2502237702 回复 zyzplzyz

我也遇上同样的问题了,为何前面会多了个http//,怎么解决?

Aaron-wlh

laravel5.2应该怎么重写发送邮件的代码呢。。

JellyBool 回复 Aaron-wlh

都是差不多的道理,你看看视频和源码应该知道了

zhenzihui

5.4不用重写就可以发送了

JellyBool 回复 zhenzihui

嗯哼,很棒,版本不一样

gooin

Laravel 5.3 不用重写就可以发送了~

JellyBool 回复 gooin

阔以阔以,现在新版本是不一样了么

JremeryHe

我想提问题怎么插入图片?

JremeryHe

就是我想截个图提问,结果发现截图黏贴没有用

JellyBool 回复 JremeryHe

使用markdown

https://www.laravist.com/discuss/markdown/learn-to-use-markdown-21

代码直接粘贴上来吧,不推荐截图,粘贴代码的时候用 markdown 排版一下

JremeryHe 回复 JellyBool

好的谢谢哈~

wangshuaiws
  • 确实大佬,5.3不用重写就能发送了。。 *
Stussy

我还没写点了就发送 很惊喜 哈哈哈 跟中了彩票一样

hizoubin

comand+P貌似不是打开文件的快捷键

JellyBool 回复 hizoubin

你先看看 phpstorm 那个视频,我有自定义快捷键

hizoubin 回复 JellyBool

嗯嗯 我的是command+shift+n

Young

SendCloudException in SendCloudTransport.php line 200:
Type of apiUser and template don’t match.
请问一下jelly,这个错误的根结什么,虽然报错但是数据库中依然能够得到重置密码的token数据。

//重写邮件发送规则
public function sendPasswordResetNotification ($token)
{
// 模板变量
$data = [‘url’ => url(‘password/reset’, $token) ];
$template = new SendCloudTemplate(‘ontheroad_password_reset’, $data);

    Mail::raw($template, function ($message){
        $message->from('ontheroad@outlook.com', 'Laravel for onTheRoad');
        $message->to($this->email);
    });
}
JellyBool 回复 Young

Type of apiUser and template don’t match.

Sendcloud 的 API user 没配置对吧

Young 回复 JellyBool

API user 没改动过,还可以正常的注册使用,我改用系统自带的邮件找回密码就可以正常运行。
我的是Laravel 5.3.31 ,但是sendcloud就无法使用了。。。不知道哪里出现了问题。。。

JellyBool 回复 Young

仔细看一下呗,报错就是说的这个意思啊。你的 apiUser 和 模板不匹配

Young 回复 JellyBool

老铁我找到原因了,sendcloud模版我编辑模板的时候 “邮件类型: 批量” 改成触发就OK了,这真是作shi。。。。

JellyBool 回复 Young

嗯哼,相信报错信息就行

Young 回复 JellyBool

模仿你的:三颗颗颗 you。。。

JellyBool 回复 Young

啊哈哈哈哈。。

Young

但是为啥注册的时候还能用,我电脑也重启了还是介样 搞不懂,我在看看

Aaron-wlh
public function broker()
    {
        return Password::broker();
    }

我想知道password::broker()的 broker()方法写在哪里,Illuminate\Support\Facades\Password这个类中没有此方法,它继承的类中也没有呀。

JellyBool 回复 Aaron-wlh

你看看 Illuminate\Auth\Passwords\PasswordBrokerManager 的 broker 方法:

 public function broker($name = null)
    {
        $name = $name ?: $this->getDefaultDriver();

        return isset($this->brokers[$name])
                    ? $this->brokers[$name]
                    : $this->brokers[$name] = $this->resolve($name);
    }

getDefaultDriver :

  public function getDefaultDriver()
    {
        return $this->app['config']['auth.defaults.passwords'];
    }
Aaron-wlh 回复 JellyBool

我还是不明白,password::broker()的broker()方法跟Illuminate\Auth\Passwords\PasswordBrokerManager 的 broker 方法是怎么挂钩的,看了很久也没弄懂,懵逼~

JellyBool 回复 Aaron-wlh

在 laravel 容器指定的,你搜一下 broker 这个方法名字大概就知道了

Aaron-wlh 回复 JellyBool

好的,谢谢JellyBool

Power

laravel5.5可以直接发送不用重写!

bourne

5.5的用户表示直接就可以用,但是邮箱的button不跳转,可能是因为本地的原因。然后提醒一下大家记得改APP_URL哦

blaze0207 回复 bourne

請問一下, 5.5 可以直接用是怎樣直接用?

要寄發忘記密碼的Email要寫在哪裡呢?
我如果直接用就不能吃到我在 sendcloud 的模板了

可以麻煩大大指點一下嗎?

bourne 回复 blaze0207

直接用是make:auth在5,5的版本里面直接就有了忘记密码,所有的逻辑操作都帮您弄好了。这是好早之前写的,没记错的话我叫改APP_URL是因为系统跳转使用的是APP_URL的地址。
如果你想用sendcloud的话,直接安装他的服务,改一下配置文件和他原本的调用方法就可以的

hate

我曹,把我整懵逼了。我什么都没敢。一点击发送,就发送过来了。5.4支持sendcloud了?

kuoyeh2019

评论里有高人啊,好像是5.4以上的版本不用改,改了完而因为定义时多了参数,无法覆盖。但要注意的是APP_URL的设置。这里的确有点慒。看了三遍。