This task is to provide a sign in capability in the user interface. There functionality requires is as follows:
When unauthenticated, a "Sign in" link will be visible in the top left of all pages.
When authenticated, a user icon will be visible in the top left of all pages
The "Sign in" link will open a modal dialog that provides a choice of service providers. Initially only GitHub will be available.
Clicking on a provider will start an OAuth authentication flow
Once the authentication is completed, the user will return to whichever page was visible prior to clicking on the link and the "Sign in" link will be replaced by the user icon (the state is now authenticated.)
Clicking the user icon will open a popup menu with a "Log Out" option. Selecting this will return to the unauthenticated state.
This task is to provide a sign in capability in the user interface. There functionality requires is as follows: