Je trouve que la solution des bases de données partagée est la plus
simple et évidente.
Il suffirait des créer un model User avec ceci :
| establish_connection(
:adapter=> "mysql",
:host=> "other_host",
:username=> "username",
:password=> "password",
:database=> "other_db"
)
|
|Évidement, il est possible d'utiliser des fichiers de configuration
pour cacher les informations. Il est possible de mettre le tout dans une
gem et d'inclure une gem sur toutes les applications. Je pense que c'est
comme ça que je procéderais.|
Le 2012-08-04 08:24, Camille Roux a écrit :
Hello les rubyistes !
On se prend la tête avec Matthieu depuis plusieurs jours sur
l'implémentation d'une fonctionnalité qu'on souhaiterait ajouter à
notre plateforme. Comme on arrive pas à se décider sur la solution, on
voulait en parler ici pour avoir votre avis.
L'idée est qu'on puisse se logger sur tout nos sites (sites d'actu,
job board, Human Talks...) avec un seul et même compte Human Coders
<http://humancoders.com>. A plus long terme, nous souhaiterions
regrouper des infos des différents sites sur un même profil. Par
exemple, que sur la même page, on puisse savoir les actu que la
personne a postées, les talks qu'elle a fait au Human Talks, le nombre
de commentaires postés...
_L'environnement :_
• Chaque appli est sur une instance Heroku à part (tous les sites
d'actu sont gérés par la même instance)
• Toutes les applis sont en Rails 3
• Une seule appli a de l'authentification (les sites d'actu) pour le
moment et c'est géré par Devise
_Le début de la solution à laquelle on pense :_
• Créer une nouvelle appli "Account" qui servirait pour le SSO et qui
afficherait les profils des users à terme.
• Utiliser Doorkeeper
<http://www.bonjourgem.com/post/27400677797/mardi-cest-doorkeeper>
pour faire provider OAuth 2
• Migrer les comptes utilisateurs de l'appli des sites d'actu vers la
nouvelle appli "Account"
Ensuite, soit on pourrait assurer des synchro de données entre appli
soit avec des crons soit avec des delayed jobs en passant par des API
privées et un peu de cache. Une autre idée serait d'avoir une base de
données commune pour les utilisateurs qui serait partagée à travers
toutes applis. En revanche, je sais pas comment gérer ça proprement
avec Heroku.
Qu'en pensez-vous ?
Merci beaucoup pour votre aide. On vous prépare un paquet de
nouveautés pour la rentrée :)
Bon weekend,
Camille
--
Vous avez reçu ce message, car vous êtes abonné au groupe
"Railsfrance" de Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à
l'adresse [email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]
--
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]