I am planning is an OpenID client in a multiplayer network C++ game. The hoster will have the option to allow only logins from people who can authenticate via OpenID. Also I want to make it possible to allow only certain people to login.
We already have some simple HTML viewer in our code (and we plan to migrate to WebKit), so displaying HTML (for the OpenID endpoint login) is not really a problem.
We also have code for HTTP requests (we have already migrated to libcurl here).
I haven't found any C++ code for doing the rest (the actual OpenID endpoint handshake). Is there any C++ code for this?
If not, where is a good point to start? I don't really have much ideas about the OpenID internals. Is it complicated to code that myself?
Is it possible at all like this? I think I have seen that I must put some authentication site URL or so to the OpenID endpoint where it will return to if the login is successful. In this case, there is no site where you login via OpenID, it is a gameserver.
If that is really a problem to do it this way, we also have our own webserver (one for our forum and we have the SourceForge one), so we could also do all the stuff there. However, this has the huge drawback that the game depends on some website for the OpenID login, which is very bad -- one of the nice advantages of OpenID is gone.