Authentication
Handle authentication for clients and users
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
Add a detailed description
Status
These details are only updated with each release, for more acurate updates and keeping track of progress, see the task in GitHub.
| Owner | Lead | Doc Status | Product Status | Last Update | Version | Release | Phase |
|---|---|---|---|---|---|---|---|
| - | Roy | In Progress | Up Next | 04.03.2024 | 0.01 | Internal | Alpha |
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
User Stories
Persona One
Update Coming Soon
As a busy user I don’t want to watch but rather listen to a podcast, however, when I hear a voice I don’t recognize, I want to take a glance at my phone to see a name and/or photo of who is talking or maybe ask the built-in “AI/assistant”.
User Flows
Personas
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'],
);
}
}