Challenge Overview
Project Overview
We are going to add social login by using www.auth0.com for TopCoder site. For initial stage, we are going to support 5 social providers, Google, Facebook, Twitter, Github and Salesforce.
Previously, we have added support of social login for new user registration and login.
This contest is going to update profile page, and allow existing user to link one (or more) social logins to his/her own account.
Competition Task Overview
This contest is going to update profile page, and allow existing user to link one (or more) social logins to his/her own account.
Please register your own account for development.
The implementation will based on branch - https://coder.topcoder.com/internal/web_module/trunk
Linking/Unlinking Social Logins to existing user account
After user login and click the My TopCoder image on the top-right corner, user will be taken to My TopCoder page (http://community.topcoder.com/tc?module=MyHome).
In that page,
- under Add Secondary Email link, put another link for linking/unlinking Social Login
- if there is no social login associated with the current user, name the link like Add Social Login. click the link, will start the Add Social Login process.
- if there is a social login associated with the current user, name the link as Remove Social Login, click the link will start the Remove Social Login process.
- both processes are finally adding/removing records under user_social_login table under common_oltp database.
- Add Social Login Process
- after clicking the link, a standard auth0 Login widget will be shown for social authentication
- after successfully authenticated, a callback will be run to add relative data to user_social_login table under common_oltp database.
- Callback URL - https://tc.cloud.topcoder.com/tc?module=AddSocialLogin
- Remove Social Login Process
- after clicking the link, it will going to find the corresponding user_social_login record for the current user, and remove it from user_social_login table under common_oltp database.
- The implementation should properly handle the error cases, like following
- when trying to add social login, if the user already asscociated with one, error should be displayed.
- when trying to remove social login, but the current user does not asscoiated one.
- Please add more, if it fit the situation.
Auth0 Info
You can create your own free account to start your development, which gives more controls about the implementation. But it is limited that only allows two social login providers, so for final testing and submission, please use our provided account.
The account info is provided in forum, if you need any adjustment like callback url, please raise in forum, I can help change that.
Reference
The Code changes for previous contest are already checkedin svn. please check
https://coder.topcoder.com/internal/web_module/trunk
https://coder.topcoder.com/internal/web_module/branches/tc_reg_revamp
database tables:
create table 'informix'.social_login_provider (
social_login_provider_id decimal(10, 0) not null,
name VARCHAR(50)
);
create table 'informix'.user_social_login (
user_id decimal(10, 0) not null,
social_login_provider_id decimal(10, 0) not null,
social_user_name VARCHAR(100) not null,
social_email VARCHAR(100),
social_email_verified boolean
);
for what data to be inserted into the user_social_login table, you can reference the implementation of registration logic.
Technology Overview
The working environment requirement details for this application are outlined in the Application Requirements Specification. An overview of the environment requirements are listed below:
- Java 1.5
- Red Hat Linux
- JBoss 4.0.2
- Tomcat 5.5
- Struts 1.3.5
- Informix 10.0
- AJAX
Final Submission Guidelines
Submission Deliverables
A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorial
Below is an overview of the deliverables:
- New/Update Source Code for new requirements
- A complete and detailed deployment documented explaining how to deploy the application including configuration information.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.