Account types
Local accounts
User register through web admin and verify email with be created with an local account, user can login using username/email and password pair.
External provider accounts
User login using valid Google auth token or login through web admin by using "Login with Google" button with has an local account with the same email with Google, if the email exist, then use with be authorized with exists account, otherwise new account will be created.
Authenticated user with have randome username, with no password, user then can change username, password via web admin.
Guest accounts
System allow user to authenticate using guest account, guest account will have random username with no email and password. Application must store refresh_token in local system or user will not be able to login again, refresh_token of guest account will be never expired vs 30d expiration of normal account.