前提・実現したいこと
Laravel Socialiteを用いてtwitterログイン機能を実装しようとしています。
Twitter developer appはすでに作成していて、twitter_client_idとtwitter_client_secretも取得しています。
https://qiita.com/tiwu_official/items/8ac86977344a1a97f9d2
こちらの記事通りの作業は進めてあります。
発生している問題・エラーメッセージ
Received HTTP status code [401] with message "{"errors":[{"code":32,"message":"Could not authenticate you."}]}" when getting temporary credentials.
該当のソースコード
php
1// web.php 2Route::get('auth/twitter', 'Auth\SocialAuthController@redirectToProvider'); 3Route::get('auth/twitter/callback', 'Auth\SocialAuthController@handleProviderCallback'); 4Route::get('auth/twitter/logout', 'Auth\SocialAuthController@logout'); 5 6// welcome.blade.php 7<a href="https://github.com/laravel/laravel">GitHub</a> 8<a href="/auth/twitter">Twitterログイン</a> 9 10// SocialAuthController.php 11<?php 12namespace App\Http\Controllers\Auth; 13use App\User; 14use Auth; 15use Socialite; 16use App\Http\Controllers\Controller; 17use Illuminate\Foundation\Auth\AuthenticatesUsers; 18 19class SocialAuthController extends Controller 20{ 21 use AuthenticatesUsers; 22 protected $redirectTo = '/'; 23 24 /** 25 * ユーザーをTwitterの認証ページにリダイレクトする 26 * 27 * @return Response 28 */ 29 30 public function redirectToProvider() 31 { 32 return Socialite::driver('twitter')->redirect(); 33 } 34 /** 35 * Twitterからユーザー情報を取得する 36 * 37 * @return Response 38 */ 39 40 public function handleProviderCallback() 41 { 42 try { 43 $user = Socialite::driver('twitter')->user(); 44 } catch (Exception $e) { 45 return redirect('auth/twitter'); 46 } 47 48 $authUser = $this->findOrCreateUser($user); 49 50 Auth::login($authUser, true); 51 52 return redirect()->route('home'); 53 } 54 55 private function findOrCreateUser($twitterUser) 56 { 57 $authUser = User::where('twitter_id', $twitterUser->id)->first(); 58 59 if ($authUser){ 60 return $authUser; 61 } 62 63 return User::create([ 64 'name' => $twitterUser->name, 65 'handle' => $twitterUser->nickname, 66 'twitter_id' => $twitterUser->id, 67 'avatar' => $twitterUser->avatar_original 68 ]); 69 } 70 71 public function logout() 72 { 73 Auth::logout(); 74 return redirect()->route('login'); 75 } 76 77 public function __construct() 78 { 79 $this->middleware('guest')->except('logout'); 80 } 81} 82 83// config/services.php 84'twitter' => [ 85 'client_id' => env('TWITTER_CLIENT_ID'), 86 'client_secret' => env('TWITTER_CLIENT_SECRET'), 87 'redirect' => env('CALLBACK_URL') 88], 89 90// .env 91TWITTER_CLIENT_ID=秘匿情報 92TWITTER_CLIENT_SECRET=秘匿情報 93CALLBACK_URL=http://127.0.0.1:8000/auth/twitter/callback
試したこと
php artisan cache:clear
php artisan config:clear
php artisan route:clear
twitter developer appサイトで
Website URL
https://ikkoku-do.herokuapp.com/
Callback URL
https://127.0.0.1:8000/auth/twitter/callback
https://127.0.0.1:8000/auth/twitter/callback/
http://127.0.0.1:8000/auth/twitter/callback/
https://127.0.0.1/auth/twitter/callback
http://127.0.0.1/auth/twitter/callback
http://127.0.0.1:8000/auth/twitter/callback
Terms of service URL
https://ikkoku-do.herokuapp.com/term
Privacy policy URL
https://ikkoku-do.herokuapp.com/privacy
Access permission
Read and write
Additional permissions
Request email address
補足情報(FW/ツールのバージョンなど)
Laravel/Framework: "5.8.*"
laravel/socialite: "^4.1"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。