Chcę zrobić logowanie za pomocą facebooka i dostaje taki komunikat

0

Mam taki problem wykonuję wszystko jak jest w instrukcji tej https://scotch.io/tutorials/laravel-social-authentication-with-socialite i dostaje taki komunikat

The use statement with non-compound name 'Auth' has no effect

nie wiem tylko co wpisać w pole w pliku env w pola
FACEBOOK_ID=1234//tutaj chyba się wpisuje id z facebooka ?
FACEBOOK_SECRET=test //tutaj nie wiem
FACEBOOK_URL=test //tutaj też nie wiem

No i daje kod controllera.

<?php
use Auth;
use Socialite;
use Blog\Article;

class AuthController extends Controller
{
    // Some methods which were generated with the app
    
    /**
     * Redirect the user to the OAuth Provider.
     *
     * @return Response
     */
    public function redirectToProvider($provider)
    {
        return Socialite::driver($provider)->redirect();
    }

    /**
     * Obtain the user information from provider.  Check if the user already exists in our
     * database by looking up their provider_id in the database.
     * If the user exists, log them in. Otherwise, create a new user then log them in. After that 
     * redirect them to the authenticated users homepage.
     *
     * @return Response
     */
    public function handleProviderCallback($provider)
    {
        $user = Socialite::driver($provider)->user();

        $authUser = $this->findOrCreateUser($user, $provider);
        Auth::login($authUser, true);
        return redirect($this->redirectTo);
    }

    /**
     * If a user has registered before using social auth, return the user
     * else, create a new user object.
     * @param  $user Socialite user object
     * @param $provider Social auth provider
     * @return  User
     */
    public function findOrCreateUser($user, $provider)
    {
        $authUser = User::where('provider_id', $user->id)->first();
        if ($authUser) {
            return $authUser;
        }
        return User::create([
            'name'     => $user->name,
            'email'    => $user->email,
            'provider' => $provider,
            'provider_id' => $user->id
        ]);
    }
    }
?>    
1

Musisz tutaj stworzyć aplikację FB: https://developers.facebook.com/apps tam dostaniesz client ID i jakiś token/secret. Do url trzeba wpisać adres strony do której ma przyjść callback z facebooka. Czyli musisz przygotować jakiś skrypt, który przyjmie wiadomość zwrotną z FB odnośnie użytkownika, który się loguje.

0
DevEnv napisał(a):

Musisz tutaj stworzyć aplikację FB: https://developers.facebook.com/apps tam dostaniesz client ID i jakiś token/secret. Do url trzeba wpisać adres strony do której ma przyjść callback z facebooka. Czyli musisz przygotować jakiś skrypt, który przyjmie wiadomość zwrotną z FB odnośnie użytkownika, który się loguje.

Już wpisałem w pliku .env id i sekret i adres strony jednak dalej otrzymuje taki komunikat i skrypt przygotowałem.

0

A teraz mam następny błąd
InvalidStateException

in AbstractProvider.php (line 209)

Bo chciałem przetestować takie coś

$user4 = Socialite::driver('facebook')->user();

I mi taki błąd wywala moje pytanie jest takie czy mogę testować logowanie przez facebooka loklanie też czy tylko na serwerze ?

0

Dodam, dodam, że z tym sobie poradziłem trzeba było tylko zmienić ustawienia klasy autcontroller, ale teraz mam inny błąd na komputerze lokalnym jak kliknę logowanie facebooka to jest komunikat, że strona nie została zarejestrowana, a to jest wina tego, że robię to lokalnie natomiast na serwerze jest komunikat

Class 'App\Http\Controllers\Socialize' not found

Dodam, że biblioteki z vendora skopiowałem.

0

No i teraz przekierowałem porty i utworzyłem port 80, żeby był widoczny na świat i teraz z mojego komputera otrzymuje komunikat

Nie można załadować adresu URL: Domena tego adresu URL nie jest uwzględniona w domenach aplikacji. Aby można było załadować ten adres URL, dodaj wszystkie domeny i poddomeny aplikacji w polu „Domeny aplikacji” w ustawieniach aplikacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1