2010-07-14 13 views
7

Je prévois être un client OpenID dans un jeu C++ en réseau multijoueur. L'hébergeur aura la possibilité de n'autoriser que les connexions des personnes pouvant s'authentifier via OpenID. Aussi je veux permettre à seulement certaines personnes de se connecter. Nous avons déjà une visionneuse HTML simple dans notre code (et nous prévoyons de migrer vers WebKit), donc l'affichage du code HTML (pour la connexion au point de terminaison OpenID) n'est pas vraiment un problème.Authentification OpenID dans le jeu en réseau multijoueur C++

Nous avons également du code pour les requêtes HTTP (nous avons déjà migré vers libcurl ici).

Je n'ai pas trouvé de code C++ pour faire le reste (le handshake OpenID Endpoint). Y a-t-il du code C++ pour ça?

Sinon, où est un bon point de départ? Je n'ai pas vraiment d'idées sur les composants internes d'OpenID. Est-ce compliqué de coder ça moi-même?

Est-il possible du tout comme ça? Je pense que j'ai vu que je dois mettre une URL de site d'authentification ou similaire au point de terminaison OpenID où il retournera si la connexion est réussie. Dans ce cas, il n'y a pas de site sur lequel vous vous connectez via OpenID, c'est un serveur de jeux. Si c'est vraiment un problème de le faire de cette façon, nous avons aussi notre propre serveur web (un pour notre forum et nous avons le serveur SourceForge), donc nous pourrions aussi faire tout ce qu'il faut. Cependant, cela a l'énorme inconvénient que le jeu dépend d'un site Web pour la connexion OpenID, ce qui est très mauvais - l'un des avantages de OpenID est parti.

+0

Je pense que OpenID est principalement utilisé pour l'authentification de site Web; Si je me souviens correctement de la structure, le navigateur de l'utilisateur doit être redirigé vers le site Web du fournisseur afin de confirmer la demande d'authentification. – amphetamachine

+0

Pour autant que je me souvienne, le résultat est la redirection avec le résultat de l'authentification. Si un navigateur intégré est utilisé, la redirection (ou l'événement de navigation) peut être interceptée du côté client. –

Répondre

2

Est-ce que libopkele vous aide?

Il y a une question à propos d'une erreur de configuration avec celui-ci here.