Increased Prize!!!! Release Assembly - Social Login Linking for Existing User

Register
Submit a solution
The challenge is finished.

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.

SocialAccountServiceImpl.java

RegisterAction.java

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.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30036178