iT邦幫忙

0

[ Laravel ]關於make:auth之運作問題

如標題~
我使用Laravel提供的會員系統
但完全不了解運作原理......
如今 小弟想要製作FB登入功能就很頭大了!
希望有這方面經驗的前輩提攜
以下是小弟的Laravel教學書中裡程式碼(controller)
請問應該要加在何處呢??

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;
use PHPUnit\Framework\MockObject\Stub\Exception;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;

class UserAuthController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */

    //facebook sign
    public function facebookSignInProcess()
    {
        $redirect_url = env('FB_REDIRECT');

        return Socialite::drive('facebook')
            ->scopes(['user_friends'])
            ->redirectUrl($redirect_url)
            ->redirect();
    }
    public function facebookSignInCallbackProcess()
    {
        if (request()->error == 'access_denied') {
            throw new Exception('授權失敗');
        }
        //依照網域產生出重新導向連結(來驗證是否為發出時同一 callback)
        $redirect_url = env('FB_REDIRECT');
        //取得第三方資料
        $FacebookUser = Socialite::drive('facebook')
            ->fields([
                'name',
                'email',
                'gender',
                'verified',
                'link',
                'first_name',
                'last_name',
                'locale',
            ])
            ->redirectUrl($redirect_url)->user();
            $facebook_email = $FacebookUser->email;

            if(is_null($facebook_email)){
                throw new Exception('未授權取得使用著email');
            }
            //取得facebook 資料
            $facebook_id = $FacebookUser->id;
            $facebook_name = $FacebookUser->name;

            //取用使用者資料是否有此 facebook id 資料
            $User = User::where('facebok_id',$facebook_id)->first();

            if(is_null($User)){
                //尚未註冊
                $input = [
                    'email' => $facebook_email,
                    'nickname' => $facebook_name,
                    'password' => uniqid(),
                    'facebook_id' => $facebook_id,
                    'type' =>'G',
                ];
                //密碼加密
                $input['password'] = Hash::make($input['password']);
                //新增會員資料
                $user = User::create($input);

                //寄送註冊通知信
                $mail_binding = [
                    'nickname' => $input['nickname']
                ];

                Mail::send('email.signUpEmailNotification',$mail_binding,
                function ($mail) use ($input)
                {
                    $mail->to($input['email']);
                    $mail->from('laravel.shop');
                    $mail->subject('恭喜註冊成功');
                });

                //登入會員
                //session 紀錄會員編號
                session()->put('user_id',$User->id);

                //重新導向到原先使用著造訪頁面
                return redirect()->intended('/');
            }
    }
}

1 個回答

0
小魚
iT邦高手 1 級 ‧ 2019-08-23 11:30:05

應該不需要 make:auth 吧...
我不知道你要做什麼?
還有你現在遇到的問題是甚麼?

看更多先前的回應...收起先前的回應...
QQ556 iT邦新手 5 級 ‧ 2019-08-23 19:28:46 檢舉

php artisan make:auth
那是laravel快速生成的會員系統唷~
目前問題是要加入FB登入功能

小魚 iT邦高手 1 級 ‧ 2019-08-23 19:36:51 檢舉

你看的跟我看的應該是同一本書,
不過應該沒有說到要make:auth,
也不需要這樣做.
所以你看到的錯誤訊息是什麼呢?

QQ556 iT邦新手 5 級 ‧ 2019-08-23 21:24:14 檢舉

那是我在看laravel新手道場之前的
看另外一個線上課程教的
所以我直接跳過會員系統那個章節
現在做到社群登入就有這問題...

QQ556 iT邦新手 5 級 ‧ 2019-08-23 21:26:09 檢舉

目前最大問題是不知道怎麼把書中的程式碼接上內建的會員系統/images/emoticon/emoticon06.gif

小魚 iT邦高手 1 級 ‧ 2019-08-23 21:35:29 檢舉

既然這樣,
你應該從頭開始看...
你的問題就像我還沒學加減乘除,
為什麼指數對數都看不懂...

QQ556 iT邦新手 5 級 ‧ 2019-08-23 21:43:11 檢舉

我知道了 我在研究前面的章節
不過那功能真的很好用、快速
推薦給您

小魚 iT邦高手 1 級 ‧ 2019-08-23 22:08:26 檢舉

喔喔..謝謝..

我要發表回答

立即登入回答