Lumen5.1 使用Mail郵件且找回密碼功能

發(fā)郵件

Lumen5.1 使用Mail郵件

找回密碼

  1. 路由
//找回密碼
    $app->get('/recover','CompController@recoverPage');
    $app->post('/recover','CompController@recover');

    //重置密碼
    $app->get('/revise/{guid}/{token}','CompController@revise');
    $app->post('/revise','CompController@doRevise');
  1. 控制器
  • 找回密碼并發(fā)送郵件
     /**
     * 找回密碼頁
     * @return \Illuminate\View\View
     */
    public function recoverPage()
    {
        return view('mails.recoverpw');
    }

     /**
     * 找回密碼操作
     * @return \Illuminate\View\View
     */
    public function recover(Request $request)
    {
        // 首先獲取email
        $data = $request->only('email');
        // 驗證數(shù)據(jù)
        $validator = \Validator::make($data, ['email' => 'required|email']);
        if ($validator->fails()) return redirect('/recover')->withErrors($validator);
        // 判斷數(shù)據(jù)庫中是否存在email
        $uri = config('uri.remote') . '/comp/forgetPassword/' . $data['email'];
        $res = ExtCurl::post($uri);
        // 判斷服務(wù)器為空
        if (empty($res)) return view('admin.errors.404')->withErrors(['status' => 500, 'msg' => '服務(wù)器繁忙請稍候']);
        if (empty($res['status']) || $res['status'] != 200) return view('admin.errors.404')->withErrors($res);
        // 判斷是否是禁用狀態(tài)
        if ($res['data']['status'] ==1) {
            // 如果等于1,說明不是禁用狀態(tài)
            // 存儲session
            session(['tmpUser' => $res['data']]);
            // 發(fā)郵件
            $user = new \stdClass();
            $user->username = $res['data']['name'];
            $user->email = $res['data']['email'];
            $link = url('/revise/' . $res['data']['guid'] . '/' . $res['data']['token']);

            try {
                \Illuminate\Support\Facades\Mail::send('mails.msg', ['link' => $link], function ($m) use($user) {
                    $m->to($user->email, $user->username)->subject('重置密碼信息!');
                });
                return redirect('/recover')->withErrors('找回密碼鏈接已發(fā)送到郵箱撕阎,請到郵箱中點擊鏈接找回密碼');
            } catch (\Exception $e) {
                return redirect('/recover')->withErrors($e->getMessage());

            }
        }

    }
  • 重置密碼
     /**
     * 重置密碼頁面
     */
    public function revise($guid, $token)
    {
        //驗證session中是否有數(shù)據(jù)
        if (empty(session())) return redirect('/login');

        //驗證數(shù)據(jù)
        $data = ['guid' => $guid, 'token' => $token];
        $validator = \Validator::make($data,[
            'guid' => 'required|string|size:32',
            'token' => 'required|string|size:50',
        ]);
        if ($validator->fails()) return redirect('/recover')->withErrors($validator);

        //獲取session中的guid和token
        $sessionGuid = session('tmpUser.guid');
        $sessionToken = session('tmpUser.token');

        //做對比
        if ($guid == $sessionGuid && $token == $sessionToken) return view('mails.revisepw');
        return redirect('/recover')->withErrors('數(shù)據(jù)不正確,請重新申請');
    }

    /**
     * 重置密碼操作
     */
    public function doRevise(Request $request)
    {
        $data = $request->only('password', 'token');
        //驗證數(shù)據(jù)
        $validator = \Validator::make($data, [
            'password' => 'required|string|min:6|max:128',
            'token' => 'required|string|size:50',
        ]);
        if ($validator->fails()) return redirect('/recover')->withErrors($validator);

        $sessionToken = session('tmpUser.token');
        $sessionGuid = session('tmpUser.guid');
        $data['email'] = session('tmpUser.email');
        if ($data['token'] != $sessionToken) return redirect('/recover')->withErrors('數(shù)據(jù)不正確,請重新申請');

        //把新密碼提交到數(shù)據(jù)庫
        $uri = config('uri.remote') . '/comp/resetPassword/';
        $res = ExtCurl::post($uri, $data);
        //判斷服務(wù)器為空
        if (empty($res)) return view('admin.errors.404')->withErrors(['status' => 500, 'msg' =>'服務(wù)器繁忙請稍后']);
        if (empty($res['status']) || $res['status'] != 200) return redirect('/revise/' . $sessionGuid . '/' . $sessionToken)->withErrors($res);
        return redirect('/login');
    }

短信發(fā)送功能

發(fā)送短信功能

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浮梢,一起剝皮案震驚了整個濱河市甜害,隨后出現(xiàn)的幾起案子蛉拙,更是在濱河造成了極大的恐慌厕宗,老刑警劉巖宙攻,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奠货,死亡現(xiàn)場離奇詭異,居然都是意外死亡座掘,警方通過查閱死者的電腦和手機递惋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溢陪,“玉大人萍虽,你說我怎么就攤上這事⌒握妫” “怎么了杉编?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長咆霜。 經(jīng)常有香客問我邓馒,道長,這世上最難降的妖魔是什么蛾坯? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任光酣,我火速辦了婚禮,結(jié)果婚禮上脉课,老公的妹妹穿的比我還像新娘救军。我一直安慰自己,他們只是感情好倘零,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布缤言。 她就那樣靜靜地躺著,像睡著了一般视事。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上庆揩,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天俐东,我揣著相機與錄音,去河邊找鬼订晌。 笑死虏辫,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锈拨。 我是一名探鬼主播砌庄,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了娄昆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎财忽,沒想到半個月后呈宇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡扒俯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年奶卓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撼玄。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡夺姑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掌猛,到底是詐尸還是另有隱情盏浙,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布留潦,位于F島的核電站只盹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏兔院。R本人自食惡果不足惜殖卑,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坊萝。 院中可真熱鬧孵稽,春花似錦、人聲如沸十偶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惦积。三九已至接校,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間狮崩,已是汗流浹背蛛勉。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留睦柴,地道東北人诽凌。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像坦敌,于是被迫代替她去往敵國和親侣诵。 傳聞我的和親對象是個殘疾皇子痢法,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)杜顺,斷路器财搁,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 22年12月更新:個人網(wǎng)站關(guān)停,如果仍舊對舊教程有興趣參考 Github 的markdown內(nèi)容[https://...
    tangyefei閱讀 35,170評論 22 257
  • 昨日看《黃金時代》哑舒,看蕭紅一生幾經(jīng)跌宕妇拯,雖不乏知己篤交,卻少了一份對自己的期待和支撐洗鸵。才情橫溢卻似水東西流,看著自...
    見深不知深閱讀 167評論 0 0
  • 現(xiàn)在連說話都覺得累越锈。無法溝通。 感覺過著沒任何意義膘滨。甘凭。太累太累了。火邓。也許一個人的生活反而會開心丹弱。
    鬼宿閱讀 131評論 0 0
  • 2017國際攀聯(lián)世界杯攀巖賽重慶分站賽(IFSC Climbing Worldcup –Chongqing 201...
    Amy蕾閱讀 623評論 0 1