-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Summary
This issue defines functionality regarding user accounts for other functions.
It defines the login method, the information required to create an account, the creation of a unique identifier for the account, the method of verifying the account information, etc., and some of them define the technical requirements.
This issue is still in draft. This has not been officially decided and the contents may be modified at any time.
User and Account
A user is identified by an Account. If Account is different, it is considered a different user. This means that one people can create multiple accounts.
Account data
Defines the data the account must have.
- ID (Unique. Like Postgres
GENERATED ALWAYS AS IDENTITYclause column, defined as PK in most tables)- It will be using
biginttype withGENERATED ALWAYS AS IDENTITYconstraint.
- It will be using
- Account ID (Unique)
- This value is a unique distinguished name such as
@iamauser. This is a different value from the ID above.
- This value is a unique distinguished name such as
- Username
- This data is the
display namethat the user will see on the frontend.
- This data is the
- Email Address (Unique)
- Email address must be unique. if email is already used, account can't be register.
- Password (Optional)
- Designate as optional for future 3rd party login.
- When saving, it must be saved using a hash function along with salt.
Data for 3rd party login should be managed in a separate table, and it will be implemented in the form of referring to the unique ID of the account through a foreign key.
The data required by the function is defined by each function. Such data must be defined in new tables and linked by foreign keys. Account tables should contain information purely about accounts.
Login
Users can log in with the following information:
- Email Address
- Password
3rd party login is not considered in the current version. This will be considered later.
Authorization
The definition of 'authentication method', known as session-based authentication or token-based authentication, has not been decided yet. It is technical requirements and will be decide after discussion.