質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

2回答

1681閲覧

laravelでソーシャルログインを実装したいです。

yuta1989

総合スコア65

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

1クリップ

投稿2020/06/01 08:21

編集2020/06/02 05:03

laravelでソーシャルログインを実装したいです。
Composerを使ってSocialiteをインストールしました。
ネットで記事を探して進めてきましたが、ログイン画面のFacebookボタンを押すと
下記のエラーがでてしまい、調べましたが解決策がわかりませんでした。
解決策がわかる方教えていただけますでしょうか。

■エラー内容
Error
Class 'Socialite' not found

■エラーが出ている場所
C:\xampp\htdocs\laravel\app\Http\Controllers\Auth\LoginController.php:26

■LoginController

<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\AuthenticatesUsers; use Socialite; use App\User; use Auth; class LoginController extends Controller { use AuthenticatesUsers; protected $redirectTo = '/home'; public function __construct() { $this->middleware('guest')->except('logout'); } //ログインボタンからリンク public function socialLogin($social) { return Socialite::driver($social)->redirect(); } //Callback処理 public function handleProviderCallback($social) { //ソーシャルサービス(情報)を取得 $userSocial = Socialite::driver($social)->stateless()->user(); //emailで登録を調べる $user = User::where(['email' => $userSocial->getEmail()])->first(); //登録(email)の有無で分岐 if($user){ //登録あればそのままログイン(2回目以降) Auth::login($user); return redirect('/home'); }else{ //なければ登録(初回) $newuser = new User; $newuser->name = $userSocial->getName(); $newuser->email = $userSocial->getEmail(); $newuser->save(); //そのままログイン Auth::login($newuser); return redirect('/home'); } } }

■app.php

'providers' => [ /* * Laravel Framework Service Providers... */ Illuminate\Auth\AuthServiceProvider::class, Illuminate\Broadcasting\BroadcastServiceProvider::class, Illuminate\Bus\BusServiceProvider::class, Illuminate\Cache\CacheServiceProvider::class, Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, Illuminate\Cookie\CookieServiceProvider::class, Illuminate\Database\DatabaseServiceProvider::class, Illuminate\Encryption\EncryptionServiceProvider::class, Illuminate\Filesystem\FilesystemServiceProvider::class, Illuminate\Foundation\Providers\FoundationServiceProvider::class, Illuminate\Hashing\HashServiceProvider::class, Illuminate\Mail\MailServiceProvider::class, Illuminate\Notifications\NotificationServiceProvider::class, Illuminate\Pagination\PaginationServiceProvider::class, Illuminate\Pipeline\PipelineServiceProvider::class, Illuminate\Queue\QueueServiceProvider::class, Illuminate\Redis\RedisServiceProvider::class, Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, Illuminate\Session\SessionServiceProvider::class, Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, // Laravel\Socialite\SocialiteServiceProvider::class, /* * Package Service Providers... */ /* * Application Service Providers... */ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, // App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, ], /* |-------------------------------------------------------------------------- | Class Aliases |-------------------------------------------------------------------------- | | This array of class aliases will be registered when this application | is started. However, feel free to register as many as you wish as | the aliases are "lazy" loaded so they don't hinder performance. | */ 'aliases' => [ 'App' => Illuminate\Support\Facades\App::class, 'Arr' => Illuminate\Support\Arr::class, 'Artisan' => Illuminate\Support\Facades\Artisan::class, 'Auth' => Illuminate\Support\Facades\Auth::class, 'Blade' => Illuminate\Support\Facades\Blade::class, 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, 'Bus' => Illuminate\Support\Facades\Bus::class, 'Cache' => Illuminate\Support\Facades\Cache::class, 'Config' => Illuminate\Support\Facades\Config::class, 'Cookie' => Illuminate\Support\Facades\Cookie::class, 'Crypt' => Illuminate\Support\Facades\Crypt::class, 'DB' => Illuminate\Support\Facades\DB::class, 'Eloquent' => Illuminate\Database\Eloquent\Model::class, 'Event' => Illuminate\Support\Facades\Event::class, 'File' => Illuminate\Support\Facades\File::class, 'Gate' => Illuminate\Support\Facades\Gate::class, 'Hash' => Illuminate\Support\Facades\Hash::class, 'Http' => Illuminate\Support\Facades\Http::class, 'Lang' => Illuminate\Support\Facades\Lang::class, 'Log' => Illuminate\Support\Facades\Log::class, 'Mail' => Illuminate\Support\Facades\Mail::class, 'Notification' => Illuminate\Support\Facades\Notification::class, 'Password' => Illuminate\Support\Facades\Password::class, 'Queue' => Illuminate\Support\Facades\Queue::class, 'Redirect' => Illuminate\Support\Facades\Redirect::class, 'Redis' => Illuminate\Support\Facades\Redis::class, 'Request' => Illuminate\Support\Facades\Request::class, 'Response' => Illuminate\Support\Facades\Response::class, 'Route' => Illuminate\Support\Facades\Route::class, 'Schema' => Illuminate\Support\Facades\Schema::class, 'Session' => Illuminate\Support\Facades\Session::class, 'Storage' => Illuminate\Support\Facades\Storage::class, 'Str' => Illuminate\Support\Str::class, 'URL' => Illuminate\Support\Facades\URL::class, 'Validator' => Illuminate\Support\Facades\Validator::class, 'View' => Illuminate\Support\Facades\View::class, // 'Socialite' => Laravel\Socialite\Facades\Socialite::class, ],

■services.php

'facebook' => [ 'client_id' => env('FB_CLIENT_ID'), 'client_secret' => env('FB_CLIENT_SECRET'), 'redirect' => env('FB_URL'), ],

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

>ネットで記事を探して進めてきましたが

公式をみていくと抜けが見つかると思います

Laravel 6.x Laravel Socialite

Socialite Providers

投稿2020/06/02 04:22

IkumiMashiba

総合スコア76

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuta1989

2020/06/02 04:57

ご回答ありがとうございます。公式も見てみます。
guest

0

use Socialite;
してください

投稿2020/06/01 09:44

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuta1989

2020/06/02 01:44

ご回答ありがとうございます。 エラーが出ているLoginController.phpにはすでにuse Socialite;が入っていたようです。 その他にどのような原因が考えられますでしょうか?
mikkame

2020/06/02 03:52

それならコード全部記載してください
yuta1989

2020/06/02 04:57

コードを追記いたしました。よろしくお願いいたします。
yuta1989

2020/06/02 05:01

app.phpにエイリアスがないのが原因かと思いましたが、 providersに「Laravel\Socialite\SocialiteServiceProvider::class,」を追記 aliasesに「'Socialite' => Laravel\Socialite\Facades\Socialite::class,」 を追記すると下記のエラーになります。 Error Class 'Laravel\Socialite\SocialiteServiceProvider' not found
mikkame

2020/06/02 05:40

5.5系以降その記述は不要です composerでインストールできていない気配がします
yuta1989

2020/06/03 08:17

ありがとうございます。 Socialiteがうまくインストールできていなかったようで、Socialiteのインストールをしたらエラーが解消されました。ですが、今度は下記のエラーが出てしまい、解決方法がわかりません…。 「このサイトにアクセスできませんlocalhost で接続が拒否されました。localhost で接続が拒否されました。ERR_CONNECTION_REFUSED」
yuta1989

2020/06/03 09:08 編集

おそらくルートと.envで設定しているコールバックURLに問題がありそうなのですが、解決方法をご存知でしょうか?
yuta1989

2020/06/03 09:10 編集

■web.php //ログインボタンからのリンク Route::get('/login/{social}', 'Auth\LoginController@socialLogin')->where('social', 'facebook|twitter'); //コールバック用 Route::get('/login/{social}/callback', 'Auth\LoginController@handleProviderCallback')->where('social', 'facebook|twitter'); ■.env FACEBOOK_CALLBACK_URL=https://localhost:8000/login/facebook/callback
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問