如標題~
我使用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('/');
}
}
}
應該不需要 make:auth 吧...
我不知道你要做什麼?
還有你現在遇到的問題是甚麼?
php artisan make:auth
那是laravel快速生成的會員系統唷~
目前問題是要加入FB登入功能
你看的跟我看的應該是同一本書,
不過應該沒有說到要make:auth,
也不需要這樣做.
所以你看到的錯誤訊息是什麼呢?
那是我在看laravel新手道場之前的
看另外一個線上課程教的
所以我直接跳過會員系統那個章節
現在做到社群登入就有這問題...
目前最大問題是不知道怎麼把書中的程式碼接上內建的會員系統