前提・実現したいこと
Twitter APIを利用してログインをできるようにしたいと考えております。
現在発生している問題
ログインボタンを作成し、クリックをするが以下のエラーが表示。
「"Class App\Http\Controllers\Auth\OAuthLoginController does not exist"」
自分でもコードを再確認するなど行いましたが、解決には至っておりません。
エラー画面
app/Http/Controllers/Auth/OAuthLoginController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\Models\User; use App\Models\Social; use Socialite; class OAuthLoginController extends Controller { public function getTwitterAuth() { return Socialite::driver('twitter')->redirect(); } public function authTwitterCallback() { $data = Socialite::driver('twitter')->user(); $res = Social::query() ->where('id',$data->id) ->get(); if(!empty($res[0]->user->id)){ //ログインしている場合 Auth::login($res[0]->user); return redirect('/')->with('status', 'ログインしました'); } else { //まだログインしたことない場合 情報をセッションに保存し新規会員登録へ session(['twitter' => $data]); return redirect('register')->with('status', 'Twitter連携しました'); } } }
routes/web.php
<?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); // ログイン状態 Route::group(['middleware' => 'auth'], function() { // ユーザ関連 Route::resource('users', 'UsersController'); }); // ログイン状態 Route::group(['middleware' => 'auth'], function() { // ユーザ関連 Route::resource('users', 'UsersController', ['only' => ['index', 'show', 'edit', 'update']]); // フォロー/フォロー解除を追加 Route::post('users/{user}/follow', 'UsersController@follow')->name('follow'); Route::delete('users/{user}/unfollow', 'UsersController@unfollow')->name('unfollow'); }); // ログイン状態 Route::group(['middleware' => 'auth'], function() { // ユーザ関連 Route::resource('users', 'UsersController', ['only' => ['index', 'show', 'edit', 'update']]); // フォロー/フォロー解除を追加 Route::post('users/{user}/follow', 'UsersController@follow')->name('follow'); Route::delete('users/{user}/unfollow', 'UsersController@unfollow')->name('unfollow'); }); // ログイン状態 Route::group(['middleware' => 'auth'], function() { // ユーザ関連 Route::resource('users', 'UsersController', ['only' => ['index', 'show', 'edit', 'update']]); // フォロー/フォロー解除を追加 Route::post('users/{user}/follow', 'UsersController@follow')->name('follow'); Route::delete('users/{user}/unfollow', 'UsersController@unfollow')->name('unfollow'); // ツイート関連 Route::resource('shares', 'SharesController', ['only' => ['index', 'create', 'store', 'show', 'edit', 'update', 'destroy']]); // コメント関連 Route::resource('comments', 'CommentsController', ['only' => ['store']]); // いいね関連 Route::resource('favorites', 'FavoritesController', ['only' => ['store', 'destroy']]); }); Route::get('/auth/{service}', 'Auth\OAuthLoginController@getTwitterAuth')->where('service', 'twitter'); Route::get('/auth/twitter/callback', 'Auth\OAuthLoginController@authTwitterCallback');
resources/views/welcome.blade.php
@extends('layouts.app') @section('content') <div class="flex-center position-ref full-height"> <div class="content"> <body class="text-center"> <form class="form-signin"> <h1 class="h3 mb-3 font-weight-normal">To all people who love MARVEL.</h1> <input type="button" class="btn btn-lg btn-secondary btn-block" onclick="location.href='{{ route('login') }}'" value="Login"> <br> <input type="button" class="btn btn-lg btn-primary btn-block" onclick="location.href='{{ route('register') }}'" value="Register"> <a href="auth/twitter">Twitter Login</a> </form> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script> </body> @endsection
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/09/21 12:19
2020/09/21 12:20
退会済みユーザー
2020/09/21 12:26
2020/09/21 12:39
2020/09/21 12:45
退会済みユーザー
2020/09/21 12:51
2020/09/21 13:08
2020/09/21 13:26
退会済みユーザー
2020/09/21 13:59