1

Background
I have Joomla website and mobile App that's running on different server (programmed using JavaScript). Both belong to the same party, and the users have similar accounts on both with identical ID's and passwords (although these ID's and passwords are stored in different DB's, we make sure they are synchronized and identical).

Current behavior
Users log in to the App (session is created on the App server) and navigate to the button (website). Upon tapping on the button, it opens new window displaying (login page of the website). They have to insert their credentials once again and then access to their accounts.

Objective
Allow users to access the website without going through login page again (they are verified when they login to the App, so no need to verify again).

Attempts

  • I searched for a proper plugin that connects Joomla to App platform (Appery) but I could not find. Many Joomla plugins allows single sign on using facebook, google ... etc. But I could not find any one can word with mobile App that exists on different server with separate DB

  • Session and Cookie is excluded as both on different servers.

  • I also referred to this Logging in user without getting password from them , but I could not figure out what plugin the OP is talking about.

  • I I've got LDAP configured and enabled however still could not get the SSO to work..

  • Since the separate databases share the same user credentials, I thought it might be better creating an authentication plugin for my website which authenticates against mobile mobile application database. This way, when a user logs into the mobile application they already have a transportable session. However, I've never created any plugin before, let alone a login plugin.. (any where to start from ?)

  • I also resorted to this idea (https://stackoverflow.com/questions/29115209/amend-form-content-on-ajax-request) but from the responses I got, it seemed to me irrational.

I searched over the internet for quite a while, and I posted several questions trying to explore my way through this. I would deeply appreciate your help and support.

If this is not the right venue to ask such a question, please refer to the suitable one.

1

You have to implement a long-lived token, a shared secret between Joomla and the mobile App server. This access token allows to access both servers and it is submitted in every API call.

Following OAuth protocol practice, once the user is authenticated and long-lived token is issued to the mobile application. The application can access to server as long as the token is active. If it expires, user has to re-authorize.

In your case, you have to implement in Joomla a way (plug-in) to authenticate the user with the token and execute the required operations. Tokens are shared between both servers in a table/service.

Finally, if you are interested to collaborate with Joomla Mobile Apps, we have just started a Working Group: Mobile Apps Team

Disclaimer: I am the leading developer of Composer App for Joocial. In this documentation chapter, you can check how an OAuth authentication plugin works.

0

You have to create a system plugin that acts as api. Joomla has function to login programmatically. You can check the existing plugin user.

Of course you have to protect the API with shared secret key between to servers.

Probably you have to store on mobile the session and add it to every request.

I have done it to integrate whmcs with joomla. I don't actually remember because I did it long time ago.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.