= Support for OpenID = The goal is to let users attach to projects using OpenID. == Interface == * On the "identify your account" page of the Attach Project wizard, add a "Log in with OpenID" button. * Selecting this opens a web browser window. * User sees a page on project site listing OpenID providers (Google, Facebook, etc.). User clicks one. * The user sees the provider's login page. Depending on the provider, they may see "OK to send email addr to (project URL)?" * On successful login, user sees Welcome page on project site * Wizard shows Done page == Implementation == DB table * openid_login. fields: nonce, status Project PHP pages * '''openid_login.php''': Manager goes here. It takes a nonce ID as an arg. It creates an openid_login record. Shows list of links to OpenID providers. * '''openid_callback.php''': Called by OpenID provider. Takes nonce ID as arg. Creates user record if needed. Displays status to user. Updates status field of openid_login record. * '''openid_poll.php''': Web RPC called by client. Takes nonce ID as arg. Returns status. GUI RPCs * '''openid_poll(url, nonce)''': initiate call to openid_poll.php * '''openid_poll_poll(status)''': poll for completion Manager If user selects OpenID login: * create nonce ID, open browser to openid_login.php * show "communication with project" page * call openid_poll() and openid_poll_poll() until get status other than PENDING * show success or failure