I'm developing a solution for my company with the following architecture: a RESTfull Web Service built on django which provide authentication and persistence layer to both a web client app and a mobile client app (which is written using phonegap).
We have been looking a lot all over the internet about authentication methods on client side, providing support for both web and mobile client app, and from what we have found (which is very poor) we are thinking about generating an API key for each user logged in from a mobile client app, and saving this API key in the local storage of the device; and, in the web client, using the traditional cookie session management, including a CSRF token in POST, PUT, and DELETE requests.
We'd like to know what are the best practices on the authentication methods and, is this approach good enough? Are there any other methods to deal with authentication? which one is the best one?
We are trying to void using oAuth, since it add complexity to our development.
We have already checked this question but its answers have not been of much help to us, since we are using phonegap, and have the mentioned architecture.
Thanks for your help!