The inspiration came for this project came from all the chatbots I have spoken to in the past. The chatbots such as those on WhatsApp or SMS, authenticate the user usually just by asking them a question and providing basic details. If a user credentials in a certain system, why not authenticate with those credentials when speaking to the chatbot?
What it does
The code allows an easy integration for developers using Twilio and Okta Identity Engine in their stack. They can use Okta as part of the conversational process to authenticate the sender and verify him using the identity engine.
How we built it
Using Okta Identity Engine and Twilio Python SDK, I was able to put them both into a Flask server and having everything served and integrated from there. The first task was to get the OIE to work with Flask, the next was to get Twilio and OIE to be able to communicate and share information. Once these two were done, the connection and integration of both was super easy.
Challenges we ran into
It was not very easy to understand how to get permissions during the authentication process for the a user's phone number.
Accomplishments that we're proud of
It is the first time I have worked with an identity engine and so the process was challenging in the beginning. The understanding of the authentication flow and other elements involved in the OIE were hard but I feel that I have now a better understanding of the process as well as the platform itself.
What we learned
Wow. A lot. From the concept of OAuth to the concept of identity engines, a lot was learnt on the way. I feel I now have a better understanding of both the implementation process of an identity engine as well as the process of authentication used. I learnt also the different protocols out there and how they integrate in such a system.
What's next for Bubble Connect
I would like to create a web application that allows developers to easily create the integration instead of using code. Here are the main things I would like to add to Bubble Connect:
- Web Application for easy management and integration
- Support for additional messaging platforms
- Integration with other authentication protocols
And of course a lot more but those are the main things.