У меня есть локальный проект, в котором я хотел бы использовать свои учетные данные gitlab для входа в систему.Для этого я использую Laravel Socialite и загрузил пакет socialiteproviders / gitlab в свой проект.
В gitlab.mycompany.be я создал ключ приложения, секретный ключ и URI:
http://react.test/login
http://react.test/login/gitlab/callback
Я включил поставщиков:
'gitlab' => [
'client_id' => env('GITLAB_KEY'),
'client_secret' => env('GITLAB_SECRET'),
'redirect' => env('GITLAB_REDIRECT_URI'),
'instance_uri' => env('GITLAB_BASE_URL'),
],
И мой LoginController выглядит так:
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function redirectToProvider()
{
return Socialite::driver('gitlab')->redirect();
}
public function handleProviderCallback()
{
$user = Socialite::driver('GitLab')->user();
$accessTokenResponseBody = $user->accessTokenResponseBody;
// $user->token;
}
Мои маршруты:
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('tasks', "TaskController");
Route::get('login', 'Auth\LoginController@redirectToProvider');
Route::get('login/gitlab/callback', 'Auth\LoginController@handleProviderCallback');
Как выглядит мой .env:
GITLAB_TOKEN=***
GITLAB_KEY=***
GITLAB_SECRET=***
GITLAB_REDIRECT_URI=http://react.test/login/gitlab/callback
GITLAB_BASE_URL=http://gitlab.mycompany.be/
GITLAB_METHOD=token
GITLAB_HOST="http://gitlab.mycompany.be/"
Ямогу войти в систему с моей учетной записью gitlab.mycompany.be, но после перенаправления я получаю следующее сообщение:
GuzzleHttp \ Exception \ ClientException (401)
Ошибка клиента: POST https://gitlab.com/oauth/token
привел к ответу 401 Unauthorized
: {"error": "invalid_client", "error_description": "Ошибка аутентификации клиента из-за неизвестного клиента, нет аутентификации клиента (усечено ...)
Почему жало возвращает 401 несанкционированный?