Authentication
GO will have a single auth for all the features and apps that are part of it, even though each app will be packdged seperatly the auth is one.
Task Chat LaunchThis document is not meant to outline how to use the API endpoints, rather how to build it. We outline what it's capabilities should be, once you have built them, you can create documentation on how to utilize them on the APIs tab.
- Status & Details
- User Stories, Flows & Personas
- Features & Functions
- Data
Description
Authentication will inicaly be handled by Firecase and later we will switch over to BackBone.
Status
These details are only updated with each release, for more acurate updates and keeping track of progress, see the task in GitHub.
| Doc Status | Product Status | Last Update | Version | Release | Phase |
|---|---|---|---|---|---|
| In Progress | Up Next | 04.03.2024 | 0.01 | Internal | Alpha |
Team
| Owner | Lead |
|---|---|
| Mendy | - |
Reminders
- Keep code lean and clear
- follow the outlined arcetecture
- write commetes in your code
- update the staus in the docs and in GitHub
- try not to recreate functions we alredy have, rather update exsiting functions to support your needs
- Be sure to follow the release guidelines
- Update Documentation
- keep API docs up to date each time you update or add endpoints
Links & Resources
- Task
- Chat
- [Main Branch]
- [Alpha]
- [Beta]
- [Production]
- BackBone Docs
Features
Below is a list of features that will be utilized in order to deliver the best account features and functionalities. The details bellow are not comprehensive feature details but rather, describe how the features will be utilized within the account, for further details, please see the individual feature documentation.
You can find the Data Structure.
On the document we want to keep all the important data, the first fetch and fast to access.
Auth
Not all accounts will need auth, primaraly accounts will be accessed by other accounts however, indeviduals will need to authenticate. If auth is not reqried than access is reqied and vs.
- Data Structure
- Data Model
- auth
- - method 1
- - - method (social, local, keypas)
- - - created (date)
- - - email
- - - password
- - - status
- - - expried
- - method 2
- - - method (pin)
- - - created (date)
- - - pincode (******)
- - - status
- - - expried (date)
Here is what the model might look like, this should be a sub collection within the account document, each method will have its own document and the fields might vary based on the method.
class AuthMethod {
final String method;
final DateTime created;
final String? email;
final String? password; // Store securely or hash
final String? status;
final String? pincode; // Store securely or hash
AuthMethod({
required this.method,
required this.created,
this.email,
this.password,
this.status,
this.pincode,
});
Map<String, dynamic> toMap() {
return {
'method': method,
'created': created.toIso8601String(),
'email': email,
'password': password,
'status': status,
'pincode': pincode,
};
}
factory AuthMethod.fromFirestore(Map<String, dynamic> data) {
return AuthMethod(
method: data['method'],
created: DateTime.parse(data['created']),
email: data['email'],
password: data['password'],
status: data['status'],
pincode: data['pincode'],
);
}
}