lopenling / Requests

For managing requests and everything related with requests
0 stars 0 forks source link

[RFC0009] User Login #12

Open lobsam opened 1 year ago

lobsam commented 1 year ago

Table of Contents

Housekeeping

This RFC is related to RFW0009 #10

Named Concepts

Auth0 : platform that provides authentication and authorization services for applications and API.

Flowbite : Vue 3 component library which provides lot of basic components needed to build webapp. such as button, login forms etc. Server: The entity responsible for authenticating user credentials and granting access. For example : Auth0

Authentication Request: The message sent by the user to the server containing user credentials.

Authentication Response: The message sent by the server to the user indicating the success or failure of the authentication process.

Session Token: A unique identifier generated by the server and associated with the user's session, used for subsequent requests to identify the user.

User Credentials: Information provided by the user to authenticate their identity, such as a username and password.

SSO (Single Sign-On): allow users to access multiple applications or systems using a single set of credentials. It eliminates the need for users to remember multiple usernames and password.

Magic Link: is an authentication method used in SSO systems where users receive an email containing a unique, time-limited link. Clicking the Magic Link authenticates the user and grants them access to the application without requiring a password. It offers a convenient and secure way for users to log in without the need for traditional credentials.

Summary

This RFC proposes a standardized process for user authentication and access to systems or services. It involves the user sending an authentication request with their credentials to the server, which responds with an authentication response containing a session token. The session token is used by the user to identify themselves in subsequent requests.

Reference Level Explanation

The User Login operates as follows:

Two methods to login :

  1. Through Magic Link: Magic Link is an authentication method that allows users to log in to an application without a password. Here's how it works:
    • User requests a Magic Link: The user enters their email address on the login page and requests a Magic Link.
    • Email with Magic Link: Auth0 sends an email to the user's address containing a unique, time-limited link.
    • Clicking the Magic Link: The user clicks the Magic Link, which securely authenticates them and grants access to the application.
    • Seamless Login: After clicking the Magic Link, the user is seamlessly logged in without needing to enter a password, enhancing user experience and convenience.
  2. The user will click the SSO button of their choice. They will then go through the prompts of that SSO. If the sign-in is valid, the user then is allowed to come in.

Alternatives

NA

Drawbacks

NA

Useful References

Unresolved Questions

NA

Parts of the system affected

Future possibilities

How do you see the particular system or part of the system affected by this request be alter or extended in the future?

Infrastructure

User Login requires a secure communication channel (e.g. HTTPS) and server-side infrastructure to handle authentication requests, validate credentials, manage sessions, and access control.

Version history

History of changes made to this RFC

NA

Recordings

List of audio recording of related discussion.

NA

Work phases

Implementation

Phase 1: User Registration

Testing

Phase 1: Unit Testing:

pdey commented 1 year ago

Can we specify, just for clarity, what "time-limited" mean in the case of magic-link generation? One aspect is time of the link, also another aspect is lifespan of the session token generated by Auth server once the link is used for login.

pdey commented 1 year ago

How does client handle the expiry of a session token, does it refresh the token silently?, A functional description of how client uses the Auth0 sdk/api for using login api and handling session token will be useful.

lobsam commented 1 year ago

Magic Link: is an authentication method used in SSO systems where users receive an email containing a unique, time-limited link.

Here as of now "time-limited" means magic link can only be used within a timeframe.

lobsam commented 1 year ago

How does client handle the expiry of a session token, does it refresh the token silently?, A functional description of how client uses the Auth0 sdk/api for using login api and handling session token will be useful.

@pdey :