Hello SD

Suppose I have app "A" with a user model and various associated
models. Now in app "B" I want to be able to sign up and sign in users
that exist in app "A". What's the best/sanest way of doing this.

Some ideas I'm tossing around:
 - Engine - Pull users model and minimum requirements (ie validations
and associated models) for signup into a Rails Engine and include that
in "A" and "B".
 - Redirect - redirect users to a page on app "A" for signup/sign in
then redirect back to "B", sharing cookie sessions between apps. All
validations and etc stay in app "A".
 - API - have the controllers on app "B" communicate with app "A" via
XML/JSON. Similar to the redirect in that all validations and etc stay
in app "A".
 - Shared db - share the app "A" db with app "B" and copy across the
models from app "A" into app "B". In other words just duplicate the
models. Probably putting restful_auth on app "B" to handle user
sessions.

A couple of notes:
App "A" uses the restful_auth plugin.
The apps are both Rails 2.3.x
We have validations on the user model and associated models. Quite a
lot of them actually.
It's quite possible that in the future we'll have more apps, so
something that's reusable is high on the list of priorities.
Sign up from app "B" does not include credit card details.
The stakeholder is quite keen on universal sessions between the apps,
but isn't a priority at the moment.

So in a nutshell, because the users are held in a foreign database I
can't use (or don't think I can use) a standard Rails authentication
pattern. What do I do?

Tips, feedback, 2cents and horror stories welcomed!

David

-- 
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby

Reply via email to