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

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

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

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

Q&A

解決済

2回答

3543閲覧

laravel5.1でtwitterのソーシャル認証後、リダイレクト先でのエラー

twin_bird

総合スコア230

Laravel

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

0グッド

0クリップ

投稿2015/12/04 12:23

編集2015/12/04 14:31

Laravel5.1にてTwitterによるログイン機能を作っています。
やり方は下のサイトのソーシャル認証の部分の通りにやっています。

手順

認証までは問題なさそうなのですが、認証後のリダイレクト先で

FatalErrorException in mypage.php line 3:
Class 'Socilite' not found

というエラーが出てしまいます。

service.phpでは、

php

1 'twitter' => [ 2 'client_id' => '#####', 3 'client_secret' => '#####', 4 'redirect' => url('mypage'), 5 ],

こんな感じでリダイレクト先を指定しています。

リダイレクト先のファイル(mypage.blade.php)

php

1<?php 2 3$user = Socialite::driver('twitter')->user(); 4 5echo $user; 6 7 8 9?>

認証済みユーザの情報を取得し、出力したいのですが、どこが間違っているのでしょうか?

#####追記######

ソーシャル認証のコントローラは以下のようになっています。

SocialauthController.php

php

1<?php 2 3namespace App\Http\Controllers\Auth; 4use Socialite; 5 6use App\User; 7use Validator; 8use App\Http\Controllers\Controller; 9use Illuminate\Foundation\Auth\ThrottlesLogins; 10use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 11 12 13 14class SocialauthController extends Controller 15{ 16 /* 17 |-------------------------------------------------------------------------- 18 | Registration & Login Controller 19 |-------------------------------------------------------------------------- 20 | 21 | This controller handles the registration of new users, as well as the 22 | authentication of existing users. By default, this controller uses 23 | a simple trait to add these behaviors. Why don't you explore it? 24 | 25 */ 26 27 use AuthenticatesAndRegistersUsers, ThrottlesLogins; 28 29 30 /** 31 * Create a new authentication controller instance. 32 * 33 * @return void 34 */ 35 public function __construct() 36 { 37 $this->middleware('guest', ['except' => 'getLogout']); 38 } 39 40 /** 41 * Get a validator for an incoming registration request. 42 * 43 * @param array $data 44 * @return \Illuminate\Contracts\Validation\Validator 45 */ 46 protected function validator(array $data) 47 { 48 return Validator::make($data, [ 49 'name' => 'required|max:255', 50 'email' => 'required|email|max:255|unique:users', 51 'password' => 'required|confirmed|min:6', 52 ]); 53 } 54 55 /** 56 * Create a new user instance after a valid registration. 57 * 58 * @param array $data 59 * @return User 60 */ 61 protected function create(array $data) 62 { 63 return User::create([ 64 'name' => $data['name'], 65 'email' => $data['email'], 66 'password' => bcrypt($data['password']), 67 ]); 68 } 69 70 /** 71 * ユーザーをGitHubの認証ページヘリダイレクト 72 * 73 * @return Response 74 */ 75 public function redirectToProvider() 76 { 77 return Socialite::driver('twitter')->redirect(); 78 } 79 80 /** 81 * ユーザーの情報をtwitterから取得 82 * 83 * @return Response 84 */ 85 public function handleProviderCallback() 86 { 87 $user = Socialite::driver('twitter')->user(); 88 89 // $user->token; 90 } 91} 92

ログインページにて認証が行われ、リダイレクトはされるのでSocialiteは機能しているような気がするのですが・・

また、公式のドキュメントでは、Socialiteを利用する際に、composer.jsonに記述を加えるような表現はないと思うのですが、composer.jsonに記述を追加する必要があるのでしょうか・・・・?

composer.jsonは以下の通りです。
composer.json

"require": { "laravel/socialite": "^2.0" }

mypage.blade.php内のfacadeがスペルもミスでした。
誤Socilite 正Socialite

しかし訂正後は以下のエラーが発生しました。
Object of class Laravel\Socialite\One\User could not be converted to string (View: /var/www/html/dev/lara/resources/views/mypage.blade.php)

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

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

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

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

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

guest

回答2

0

自己解決

解決しました!

php

1<?php 2 3$user = Socialite::driver('twitter')->user(); 4 5echo $user; 6 7

ユーザー情報の取り方が間違っていました。
Socialiteファサードについては、問題がなかったです><

ユーザー情報はObjectに格納されていたので、

php

1$id = $user->getId(); 2 3echo $id;

こんな感じで出力できました。

回答ありがとうございました!

投稿2015/12/04 14:47

twin_bird

総合スコア230

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

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

0

SociliteをFacadとして利用できるよう設定していますか?確認してみてください。

このQiitaの記事がとてもわかりやすかったので添付しますね。

http://qiita.com/localdisk/items/2e2724f31864fd49b675

投稿2015/12/04 12:37

massa142

総合スコア169

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

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

twin_bird

2015/12/04 12:49

回答ありがとうございます。 リンク先を確認してみます! しかしSociliteファサードは動いているような気がします・・ (追記をご覧ください)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問