Skip to content

Proposal_ProjectSimpleAccountCreation

Vitalii Koshura edited this page Apr 10, 2023 · 2 revisions

Simplified Account Creation

Currently, to attach to a project not in BOINC's "official list", a new volunteer must:

  • visit the project's web site, note its URL, and follow a "download BOINC" link.
  • download and install BOINC
  • type or paste the URL into the Attach Project wizard
  • enter credentials (email, password)
  • fill in some additional info on the "complete account creation" web page

The following is proposal for new features in BOINC to support several ways of streamlining this process.

Note: we assume that the project is in BOINC's official-project list (although some of the ideas could adapted to remove this restriction).

Scenarios

We want to support the following scenarios:

Public account

In this case the volunteer is attached to an existing "public" account.

Interface (new users):

  • Click on Download link
  • Run installer That's it (no Wizard).

Interface (existing users):

  • Click on Volunteer link
  • A few minutes later, the Manager shows a "confirm" dialog: Do you want to add project X, URL Y.

A weak authenticator is used since we don't want the user to be able to edit the account.

Anonymous account

In this case an "anonymous" account is created (Name: "Anonymous"; email: random string).

Interface: same as Public account.

A strong authenticator is used.

Accessible via "Your account" link on MGR. The project must export this GUI URL. (make sure this is clearly visible in simple view).

Identifiable account

Interface:

  • User fills out a form with email addr, password, user name, and anything else the project wants to collect.
  • User clicks on either Download (if new user) or Add Project (if existing user).
  • new user case: run installer
  • existing user case: the Manager shows a "confirm" dialog: Do you want to add project X, URL Y, user name Z?

Implementation notes

In all cases, the project web server sets a cookie with account info prior to downloading BOINC.

Client download without going to the BOINC web site

We need to add web RPCs so that project web code can find the URL of the appropriate client version to download.

If it can't (i.e. insufficient browser info), it should redirect to the BOINC download page.

Manager/client coordination

In the new-user case, if the manager doesn't find a cookie on the first pass, it should wait until the client has a new all-projec, then scan cookies again. May need to add a flag to CC_STATUS for this.

Changes to the BOINC manager

The manager will do the following, on startup and every 10 min or so:

        foreach (project and acct mgr in all_projects_list.xml)
            if exists(project.cookie) and not already attached
                add project cookie to CookiesFound array

        sort CookiesFound array by increasing CreationTime

        if CookiesFound.Count > 0 then
            if CookiesFound[0].IsProject then
                if any projects or acct manager already
                    show confirm dialog
                attach to project
            endif
            if CookiesFound[0].IsAccountManager then
                if any projects or acct mgr alread
                    show confirm dialog
                attach to acct mgr

If there is an error in the attach, deliver a notice suggesting checking proxy settings.

Server-side PHP code

We need to supply PHP templates for all the above scenarios.

Proxy settings

Add auto proxy setup in manager (at startup, if no projects/acct mgrs). If we find proxy,

  • tell the client (set_proxy GUI RPC)
  • tell the client to get proj list (may need to add GUI RPC for this).

Project Cookie Contents

Cookie Name Cookie Data Type Cookie Values Cookie Description
Authenticator string The account key the core client should use
Action string "attach" What action the manager should take
CreationTime time_t time(0) The current timestamp of the cookie set

Notes: If the authenticator is missing but the Action item is defined then it is assumed the manager should prompt for the creation of credentials.

Notes: Pre 6.13 clients only react to the Authenticator item.

Account Manager Cookie Contents

Cookie Name Cookie Data Type Cookie Values Cookie Description
Login string The username/email address to use for the account
PasswordHash string The password hash for the account
ReturnURL string The URL to display in a web browser after the wizard runs
Action string "attach" What action the manager should take
CreationTime time_t time(0) The current timestamp of the cookie set

Outstanding Issues

Projects not on the official-project list

Clone this wiki locally