Jaems
Nuxt + Laravel Sanctum Socialite
Hello,
im currently having a problem on socialite callback, i can login on the backend using Auth::login(), after loging in im redirecting it to the frontend, but still im not logged in on the front end, logging in using email password is working fine.
im using https://manchenkoff.gitbook.io/nuxt-auth-sanctum
This is the route for laravel
Route::get('/auth/{provider}/redirect', function ($provider) {
return Socialite::driver($provider)->stateless()->redirect();
});
Route::get('/auth/{provider}/callback', function ($provider, Request $request) {
$socialUser = Socialite::driver($provider)->stateless()->user();
$user = User::firstOrCreate(
[$provider . '_id' => $socialUser->getId()],
[
'name' => $socialUser->getName(),
'email' => $socialUser->getEmail(),
]
);
// Log in the user
Auth::login($user, true);
$token = $user->createToken('api-token')->plainTextToken;
return redirect()->away(
config('app.frontend_url') . '/auth/callback?' . http_build_query([
'token' => $token,
'user' => json_encode($user)
])
);
});
this is the callback page on frontend
<script setup lang="ts">
import { useRouter, useRoute } from 'vue-router';
const sanctumConfig = useSanctumConfig()
const sanctumFetch = useSanctumClient()
const { login,refreshIdentity } = useSanctumAuth()
const router = useRouter();
definePageMeta({
layout: 'minimal',
middleware: ['sanctum:guest'],
});
onMounted(async () => {
const urlParams = new URLSearchParams(window.location.search);
const token = urlParams.get('token');
const userlogged = urlParams.get('user');
console.log(userlogged);
console.log(token);
const response = await refreshIdentity()
console.log(response);
navigateTo(sanctumConfig.redirect.onGuestOnly || '/')
});
</script>
<template>
loading
</template>
5 replies