2010-01-06 10 views
2

Je construis mon propre blog, pour diverses raisons - principalement pour l'expérience de construction avec divers outils - mais aussi parce que de cette façon je peux avoir un blog qui pense comme moi;).Question de conception concernant OpenID

J'ai implémenté un système d'authentification très étroit dans lequel les utilisateurs peuvent se connecter en utilisant Open ID. J'ai une page de connexion classique - si un nouvel utilisateur se connecte, je lui demande son nom, son site web et son adresse e-mail - rien d'extraordinaire ici. Maintenant, les parties délicates arrivent quand il s'agit de commenter. Je souhaite soutenir les scénarios suivants:

  1. Anonyme Commentaires
  2. Si l'utilisateur est connecté, ils peuvent de poste de cours sur ce compte
  3. Si un utilisateur n'est pas connecté, mais il a un compte sur le site, ils devraient être en mesure de se connecter et d'écrire dans 1go
  4. Si un utilisateur n'est pas connecté - et ne possède pas de compte, il devrait pouvoir s'authentifier, remplir les informations utilisateur et tout afficher en 1 fois .

Les 2 premiers sont assez faciles et j'ai déjà ce travail. Le dernier est assez simple - quand les utilisateurs non authentifiés sont montrés un formulaire standard avec 5 entrées - OpenID, nom, site Web, email et commentaire. Si un utilisateur entre des informations dans la connexion OpenID, je les authentifie, crée un nouveau compte utilisateur et soumet le commentaire.

C'est le numéro 3 J'ai des problèmes avec. Vu que je ne connais pas l'url OpenID réelle d'un utilisateur jusqu'à ce que je l'ai authentifié (par exemple pour les comptes google tout le monde saisit la même URL, mais après authentifié mon site recieves une URL différente), je ne sais pas si je dois demander pour le nom, le site Web, l'email ou pas - et je me bats avec la façon dont je suis censé présenter ceci d'une manière appropriée.

Je sais qu'il n'y a probablement pas de solution magique à cela - mais est-ce que quelqu'un a de bonnes idées sur la façon dont le flux de travail de ce processus pourrait fonctionner? J'ai pensé à simplement mettre à jour un profil d'utilisateur s'il a un compte, mais je pourrais voir qu'être gênant ainsi que les utilisateurs pourraient ne pas se rappeler qu'ils ont un compte. Je ne peux tout simplement pas comprendre comment faire pour que cela fonctionne de manière agréable et évidente (pour l'utilisateur).

Toute entrée est grandement appréciée. Oublié de dire, la problématique peut être vu courir ma version de développement de ce @http://dev.blogger.kaareskovgaard.net. Aller à l'un des messages non-sens récents et essayer de commenter comme un utilisateur anonyme. Ensuite, essayez de commenter et de fournir une URL OpenID également. Maintenant, si vous essayez de commenter à nouveau en étant connecté, il vous sera uniquement demandé de fournir un commentaire. Enfin, déconnectez-vous et entrez maintenant la même URL OpenID - maintenant vous devez toujours remplir le nom d'affichage, le site Web et l'adresse e-mail - c'est le peu qui m'ennuie.

Répondre

0

J'ai décidé qu'en utilisant le schéma ci-dessus, il n'y a pas de façon appropriée de gérer cela. Je suis passé à simplement laisser les gens s'authentifier avec OpenId et afficher un joli logo et leur URL OpenID avec lesquels ils se sont identifiés lors de l'authentification. Garder les profils d'utilisateur sur le site pour les commentateurs est alors simplement omis. Je suppose que c'est probablement la meilleure façon de gérer cela de toute façon, et je ne suis pas sûr si mon idée initiale était bonne, si j'avais pu trouver une bonne solution.