Post User object to SQL Server db after signup

Yes, I am. It’s a pretty complex database for application like Skyscanner with Users and their bookings, reviews, friends etc. So currently, I have auth0’s callback url set to a certain url and in that component(that url) I’m posting User object to API like this:

this.auth.user$.subscribe(token => {
this.User= token;
});

and then I’m doing this:

let newUser = new NewUser({
** ExternalId: this.myToken.sub,**
** Email: this.myToken.email,**
** Name: this.myToken[‘metadata’].name,**
** Surname: this.myToken[‘metadata’].surname,**
** City: this.myToken[‘metadata’].address,**
** PhoneNumber: this.myToken[‘metadata’].phoneNumber**
** });**
this.userService.createUser(newUser).subscribe();

On the API service I’m checking if user already exist(if it does it’s a login, and I skip adding it to database, if it doesn’t its a signup and I add him).
But I’m pretty sure this isn’t the greatest solution. What would you recommend?

Could this be done by simply triggering an action in which I would send User object with fields required and then do all the work needed on actual API?