How about we implement a the "login with" api as follows
From the server side, you will verify the `id_token` with corresponding service. Please check oauth verificaion doc.
```haskell
POST /v1/auth/social/signup
```
Request body:
```json=
{
"email": "example@example.com",
"firstname": "Customer",
"lastname": "Overseas",
"service_token" : "token",
"service" : "google"
}
```
```haskell
POST /v1/auth/social/login
```
Request body:
```json=
{
"email": "example@example.com",
"service_token" : "token",
"service" : "google"
}
```
service=['google', 'facebook', 'apple']
Now, when the social signed up user tries to login the app using email and password, as there is no password set, he should be promted that only social login is available (or you can throw invalid password as well)