Merhabalar,
multi-tenant yapısı ile socialite sistemini nasıl kullanabilirim?
Yapım şu şekildedir.
Google
GOOGLE_REDIRECT=https://example.com/login/callback/google adresini şu şekilde tanımladım. Tahmin ettiğim gibi çalışmadı. Kullanıcının bilgilerini çekebiliyorum ama, farklı route da oldukları için oturumu açamıyorum.
Yapının doğru olmadığı ve kodun düzgün çalışmadığının farkındayım, bunun için nasıl bir yapı kurgulamalıyım?
Route::group(['middleware' => ['...'], 'domain' => request()->getHttpHost()], function () {
Route::prefix('/login/redirect')->group(function () {
Route::get('/google', [RedicretApiControlller::class, 'google_redirect_get']);
});
});
Route::domain('example.com')->group(function () {
Route::prefix('/login/callback')->group(function () {
Route::get('/google', [CollbackApiController::class, 'google_callback_get']);
});
});
public function google_callback_get() {
$state = request()->query('state');
parse_str($state, $result);
$subdomain_id = intval($result['event_id']);
$redirect_url = $result['event_url'];
if (count(DB::table('members')->where('email', $user->email)->where('subdomain_id', $subdomain_id)->get()) == 1) {
$memberdata = Member::where('email', $user->email)->where('subdomain_id', $subdomain_id)->first();
Auth::guard('member')->login($memberdata, true);
return redirect("//$redirect_url/member");
} else {
...
}
}