|
|
|
Login fcebook Laravel 5.6 Error NotFoundHttpException |
|
|
|
|
|
|
|
Sorry, the page you are looking for could not be found.
NotFoundHttpException
in RouteCollection.php (line 179)
LoginController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Input;
use Socialite;
use App\User;
use Auth;
use Hash;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function index()
{
return view('home');
}
public function __construct()
{
$this->middleware('guest')->except('logout');
}
/**
* Redirect the user to the facebook authentication page.
*
* @return Response
*/
public function facebookAuthRedirect()
{
return Socialite::with('facebook')->redirect();
}
/**
* Obtain the user information from GitHub.
*
* @return Response
*/
public function facebookSuccess()
{
$provider = Socialite::with('facebook');
if (Input::has('code')){
$user = $provider->stateless()->user();
//dd($user); // print value debug.
$email = $user->email;
$name = $user->name;
$password = substr($user->token,0,10);
$facebook_id = $user->id;
//เช็คว่า email เป็น null หรือไม่
if($email == null){ // case permission is not email public.
$user = $this->checkExistUserByFacebookId($facebook_id);
if($user == null){
$email = $facebook_id;
}
}
else
{
$user = $this->checkExistUserByEmail($email);
if($user != null){
if($user->facebook_id == ""){ // update account when not have facebook id.
$user->facebook_id = $facebook_id;
$user->save();
}
}
}
if($user!=null){ // Auth exist account.
Auth::login($user);
return redirect('index/');
}
else{ // new Account.
$user = $this->registerUser($email,$name,$password,$facebook_id);
Auth::login($user);
return redirect('index/');
}
}
return redirect('/');
}
//เช็คว่าเป็นสมาชิกเดิมหรือปล่าวเช็คว่าเป็นสมาชิกเดิมหรือปล่าว
private function checkExistUserByEmail($email)
{
$user = \App\User::where('email','=',$email)->first();
return $user;
}
private function checkExistUserByFacebookId($facebook_id)
{
$user = \App\User::where('facebook_id','=',$facebook_id)->first();
return $user;
}
//Member Register
private function registerUser($email,$name,$password,$facebook_id)
{
$user = new \App\User;
$user->email = $email;
$user->name = $name;
$user->password = Hash::make($password); // Hash::make
$user->balance = 0;
$user->level = "member";
$user->facebook_id = $facebook_id;
$user->save();
return $user;
}
}
Web.php
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
// for redirect to facebook auth.
Route::get('login/facebook', 'Auth\LoginController@facebookAuthRedirect');
// facebook call back after login success.
Route::get('login/facebook/callback', 'Auth\LoginController@facebookSuccess');
Tag : PHP, Laravel Framework, XAMPP
|
ประวัติการแก้ไข 2018-02-19 10:59:53
|
|
|
|
|
Date :
2018-02-19 10:57:51 |
By :
nottpoo |
View :
906 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (VB.NET)
php artisan route:list
มันก็เจอ Route นะคะ
|
|
|
|
|
Date :
2018-02-19 13:04:06 |
By :
nottpoo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วคะ ท่าน
ผิดตรงนี้คะ
Code (PHP)
public function index()
{
return view('home');
}
เรา Return View เป็น home แต่กลับสั่ง Redirect เป็น Index มันก็เลยหาเส้นทางไม่เจอคะ
ขอบคุณมากนะคะที่ช่วยเป็นที่ปรึกษาให
แก้เป็น Home
Code (PHP)
if($user!=null){ // Auth exist account.
Auth::login($user);
return redirect('home/');
}
else{ // new Account.
$user = $this->registerUser($email,$name,$password,$facebook_id);
Auth::login($user);
return redirect('home/');
}
}
return redirect('/');
แต่ยังข้องใจอีกอย่างหนึ่งคะ ตอนใช้คำสั่ง php artisan route:cache มันจะมี บรรทัดที่ 817 หมายถึงอะไรคะ
|
|
|
|
|
Date :
2018-02-19 13:46:05 |
By :
nottpoo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวนี้ไม่ใช่ปัญหาครับ แต่เป็นการแจ้งเตือนว่า Route บางตัว อาจเขียนหรือมีไม่ครบในบางเส้นทาง เลยปิดการ cache clear ในเส้นทางนี้ไป
|
|
|
|
|
Date :
2018-02-19 14:25:38 |
By :
dudesaranyu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|