Search code examples
phplaraveldatabase-designarchitectureapi-design

integrating user management between two or more laravel systems


I am developing a helpdesk ticketing system for my main website, and I'm looking for best practices to integrate the userbase. the ticketing system should work as an external system and in the future, I'm looking forward to developing and adding more external systems to the main website such as CRM, etc. and Also I want to use the ticketing system for other projects as well.

both the ticketing system and main website are based on the laravel framework and my main website has existing users. I want these two platforms to work as one, simultaneously but in a way that users don't have to log in twice or be bothered by the separation in the back. currently, all the signed-up users are stored on the main website DB.

for authentication purposes, I guess I need to use JWT. but what are the best ways and designs to integrate userbase and user events like sign up, etc? note that the users in each system might have extra attributes and details as well as some shared attributes.


Solution

  • If anyone is having the same question, here are some clues I've found useful to this situation:

    • SSO- Single sign-on is an authentication scheme that allows a user to log in with a single ID to any of several related, yet independent, software systems. True single sign-on allows the user to log in once and access services without re-entering authentication factors. Wikipedia (https://en.wikipedia.org/wiki/Single_sign-on)

    • CAS- The Central Authentication Service (CAS) is a single sign-on protocol for the web. Its purpose is to permit a user to access multiple applications while providing their credentials (such as user ID and password) only once. It also allows web applications to authenticate users without gaining access to a user's security credentials, such as a password. The name CAS also refers to a software package that implements this protocol. (https://en.wikipedia.org/wiki/Central_Authentication_Service)