Version 3 (modified by 13 years ago) (diff) | ,
---|
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, create_time
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 and, if successful, authenticator.
GUI RPCs
- openid_poll(url, nonce): initiate call to openid_poll.php
- openid_poll_poll(status): poll for completion; if success, return authenticator
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
- On success, do project_attach() GUI RPC using authenticator
- show success or failure in wizard