Я интегрирую Facebook в мой новый Laravel 5.1. У пользователя будет возможность войти в систему вручную, используя Facebook Login или традиционную регистрационную форму. не проблема реализации традиционного входаNotFoundHttp Exception (метод контроллера не найден) - Laravel 5.1 Facebook Login
Для Laravel Socialite, я не думаю, что я уже установлен правильно
composer.json
"laravel/socialite": "^2.0",
конфигурации/app.php
'providers' => [
/*
* Laravel Framework Service Providers...
*/
.........
.........
Illuminate\Html\HtmlServiceProvider::class,
/*
* Application Service Providers...
*/
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
Laracasts\Flash\FlashServiceProvider::class,
Laracasts\Generators\GeneratorsServiceProvider::class,
AlgoliaSearch\Laravel\AlgoliaServiceProvider::class,
Laravel\Socialite\SocialiteServiceProvider::class,
],
AuthController
<?php
namespace App\Http\Controllers\Auth;
use Socialite;
//use Illuminate\Routing\Controller;
use App\User;
use Validator;
use Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $redirectTo = '/admin';
/**
* Create a new authentication controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'getLogout']);
}
//temporarily redirected to duterte-run.mendanielle.com
public function getRegister()
{
return view('auth.login');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'username' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return User::create([
'firstname' => $data['firstname'],
'lastname' => $data['lastname'],
'username' => $data['username'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
/**
* Redirect the user to the GitHub authentication page.
*
* @return Response
*/
public function redirectToProvider()
{
return Socialite::driver('facebook')->redirect();
}
/**
* Obtain the user information from GitHub.
*
* @return Response
*/
public function handleProviderCallback()
{
// try {
$user = Socialite::driver('facebook')->user();
// } catch (Exception $e) {
// return redirect('auth/facebook');
// }
// $authUser = $this->findOrCreateUser($user);
// Auth::login($authUser, true);
// return redirect()->route('home');
}
routes.php
Route::get('/auth/facebook', 'Auth\[email protected]');
Route::get('/auth/facebook/callback', 'Auth\[email protected]');
// Logging in and out
get('/auth/login', 'Auth\[email protected]');
post('/auth/login', 'Auth\[email protected]');
get('/auth/logout', 'Auth\[email protected]');
форма Войти
<form class="form-horizontal" role="form" method="POST" action="{{ url('/auth/login') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group">
<label class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input type="email" class="form-control" name="email" value="{{ old('email') }}">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input type="password" class="form-control" name="password">
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<div class="checkbox">
<label><input type="checkbox" name="remember"> Remember Me</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">Login</button>
<a class="btn btn-link" href="{{ url('/password/email') }}">Forgot Your Password?</a>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<a class="btn btn-link" href="{{ url('/auth/facebook') }}">Login With Facebook</a>
</div>
</div>
</form>
Я последовал за последнюю документацию на веб-сайте Laravel.com, а внутри services.php
'facebook' => [
'client_id' => env('FACEBOOK_CLIENT_ID'),
'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
'redirect' => env('CALL_BACK_URL'),
],
И файл .env
FACEBOOK_CLIENT_ID=1834566497828637244
FACEBOOK_CLIENT_SECRET=9505676d1f50bty7b613baa7b68786op5ba48
CALL_BACK_URL=http://localhost:9090/auth/login
Кнопка Логин перенаправляет меня
localhost:9090/auth/facebook
NotFoundHttpException in Controller.php line 269:
Controller method not found.
в контроллер-> missingMethod ('facebook') в call_user_func_array (массив (объект (AuthController), 'missingMethod'), array ('_ missing' => 'facebook')) в строке Controller.php 256 в Controller-> callAction ('missingMethod', array ('_ missing' => 'facebook')) в ControllerDis patcher.php line 164 at ControllerDispatcher-> вызов (объект (AuthController), объект (маршрут), 'missingMethod') в строке ControllerDispatcher.php 112 в ControllerDispatcher-> Illuminate \ Routing {close} (объект (запрос)) на call_user_func (объект (Closure), объект (Request)) в Pipeline.php строке 139 в Pipeline-> Осветите \ Pipeline {закрытие} (объект (Request)) в RedirectIfAuthenticated.php линии 41
Так что надлежащим образом? Как вы интегрируете Socialite в Laravel 5.1?
обновление
Я вижу этот результат 'странный' в PHP ремесленника маршрута: список
GET|HEAD|POST|PUT|PATCH|DELETE | auth/{_missing} | App\Http\Controllers\Auth\[email protected] | guest |
Только под
| auth/facebook|App\Http\Controllers\Auth\[email protected]
Не публичные ваш Facebook идентификатор клиент/секрет – manix
его только фиктивным –