Я пытаюсь продлить Laravel \ Светская \ Two \ AbstractProvider , и я не уверен, что это лучший / правильный способ сделать это в Laravel. Чтение документации заставило меня поверить, что я должен делать это у поставщика услуг.
Любая помощь будет отличной, вот код, который у меня есть для моего поставщика услуг:
SocialiteServiceProvider.php
<?php namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class SocialiteServiceProvider extends ServiceProvider {
public function register()
{
\App::bind('socialize', function()
{
echo 'DOESN\'T GET HERE';
// what do i put here once I do get here
});
}
}
Тогда у меня есть второй файл
SocialiteAbstractProvider.php
<?php namespace App\Services;
use Laravel\Socialite\Two\AbstractProvider;
abstract class SocialiteAbstractProvider extends AbstractProvider
{
/**
* Get the authentication URL for the provider.
*
* @param string $state
* @return string
*/
protected function getAuthUrl($state);/**
* Get the token URL for the provider.
*
* @return string
*/
protected function getTokenUrl();
/**
* Get the raw user for the given access token.
*
* @param string $token
* @return array
*/
protected function getUserByToken($token);
/**
* Map the raw user array to a Socialite User instance.
*
* @param array $user
* @return \Laravel\Socialite\User
*/
protected function mapUserToObject(array $user);
public function redirect()
{
echo '@s1';
die;
$this->request->getSession()->set(
'state', $state = http_build_query(
array(
'token' => sha1(time().$this->request->getSession()->get('_token')),
'domain' => $_SERVER['HTTP_HOST']
)
)
);
return new RedirectResponse($this->getAuthUrl($state));
}
}
Я также правильно добавил его в свою конфигурацию, так как я могу видеть событие регистрации.
Задача ещё не решена.
Других решений пока нет …