diff --git a/config/constants/development.js b/config/constants/development.js index 4619d647..e311459d 100644 --- a/config/constants/development.js +++ b/config/constants/development.js @@ -2,8 +2,8 @@ const DOMAIN = 'topcoder-dev.com' const DEV_API_HOSTNAME = `https://api.${DOMAIN}` module.exports = { - ACCOUNTS_APP_CONNECTOR_URL: `https://accounts.${DOMAIN}/connector.html`, - ACCOUNTS_APP_LOGIN_URL: `https://accounts.${DOMAIN}/member`, + ACCOUNTS_APP_CONNECTOR_URL: `https://accounts-auth0.${DOMAIN}`, + ACCOUNTS_APP_LOGIN_URL: `https://accounts-auth0.${DOMAIN}`, COMMUNITY_APP_URL: `https://www.${DOMAIN}`, MEMBER_API_URL: `${DEV_API_HOSTNAME}/v4/members`, MEMBER_API_V3_URL: `${DEV_API_HOSTNAME}/v3/members`, @@ -24,7 +24,7 @@ module.exports = { CONNECT_APP_URL: `https://connect.${DOMAIN}`, DIRECT_PROJECT_URL: `https://www.${DOMAIN}/direct`, ONLINE_REVIEW_URL: `https://software.${DOMAIN}`, - DEFAULT_TERM_UUID: 'b11da5cd-713f-478d-90f4-f679ef53ee95', // Terms & Conditions of Use at TopCoder + DEFAULT_TERM_UUID: '64d6e249-d7a5-4591-8ff5-e872f8a051f9', // Terms & Conditions of Use at TopCoder DEFAULT_NDA_UUID: '77f558c1-56fb-427c-b974-61ea0a060ca7', // Appirio NDA v2.0 SUBMITTER_ROLE_UUID: '732339e7-8e30-49d7-9198-cccf9451e221', DEV_TRACK_ID: '9b6fc876-f4d9-4ccb-9dfd-419247628825', diff --git a/config/constants/production.js b/config/constants/production.js index 835c1a23..6ee99c28 100644 --- a/config/constants/production.js +++ b/config/constants/production.js @@ -2,8 +2,8 @@ const DOMAIN = 'topcoder.com' const PROD_API_HOSTNAME = `https://api.${DOMAIN}` module.exports = { - ACCOUNTS_APP_CONNECTOR_URL: process.env.ACCOUNTS_APP_CONNECTOR_URL || `https://accounts.${DOMAIN}/connector.html`, - ACCOUNTS_APP_LOGIN_URL: `https://accounts.${DOMAIN}/member`, + ACCOUNTS_APP_CONNECTOR_URL: process.env.ACCOUNTS_APP_CONNECTOR_URL || `https://accounts-auth0.${DOMAIN}`, + ACCOUNTS_APP_LOGIN_URL: `https://accounts-auth0.${DOMAIN}`, COMMUNITY_APP_URL: `https://www.${DOMAIN}`, MEMBER_API_URL: `${PROD_API_HOSTNAME}/v4/members`, MEMBER_API_V3_URL: `${PROD_API_HOSTNAME}/v3/members`, diff --git a/package.json b/package.json index 3635e879..4b1684c9 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "sass-loader": "7.1.0", "simplemde": "^1.11.2", "style-loader": "0.23.0", - "tc-accounts": "git+https://github.com/appirio-tech/accounts-app.git", + "tc-auth-lib": "topcoder-platform/tc-auth-lib#1.0.1", "terser": "^3.16.1", "terser-webpack-plugin": "1.1.0", "topcoder-healthcheck-dropin": "^1.0.3", diff --git a/src/actions/auth.js b/src/actions/auth.js index 448576ea..6ed70d57 100644 --- a/src/actions/auth.js +++ b/src/actions/auth.js @@ -1,4 +1,4 @@ -import { configureConnector, decodeToken } from 'tc-accounts' +import { configureConnector, decodeToken } from 'tc-auth-lib' import { fetchProfile } from '../services/user' import { LOAD_USER_SUCCESS, diff --git a/src/routes.js b/src/routes.js index f0c20d00..2dad9624 100644 --- a/src/routes.js +++ b/src/routes.js @@ -4,14 +4,13 @@ import React from 'react' import PropTypes from 'prop-types' import { Redirect, Route, Switch, withRouter } from 'react-router-dom' -import jwtDecode from 'jwt-decode' import _ from 'lodash' import renderApp from './components/App' import TopBarContainer from './containers/TopbarContainer' import Sidebar from './containers/Sidebar' import ChallengeList from './containers/Challenges' import ChallengeEditor from './containers/ChallengeEditor' -import { getFreshToken } from 'tc-accounts' +import { getFreshToken, decodeToken } from 'tc-auth-lib' import { saveToken } from './actions/auth' import { loadChallengeDetails } from './actions/challenges' import { connect } from 'react-redux' @@ -78,7 +77,7 @@ class Routes extends React.Component { return null } - let isAllowed = checkAllowedRoles(_.get(jwtDecode(this.props.token), 'roles')) + let isAllowed = checkAllowedRoles(_.get(decodeToken(this.props.token), 'roles')) if (!isAllowed) { let warnMessage = 'You are not authorized to use this application' diff --git a/src/services/axiosWithAuth.js b/src/services/axiosWithAuth.js index 75eb5eef..6f587e40 100644 --- a/src/services/axiosWithAuth.js +++ b/src/services/axiosWithAuth.js @@ -1,6 +1,6 @@ import axios from 'axios' import store from '../config/store' -import { getFreshToken, isTokenExpired } from 'tc-accounts' +import { getFreshToken, isTokenExpired } from 'tc-auth-lib' const { ACCOUNTS_APP_LOGIN_URL } = process.env /** diff --git a/src/util/tc.js b/src/util/tc.js index 9b732949..d22f7da8 100644 --- a/src/util/tc.js +++ b/src/util/tc.js @@ -3,7 +3,7 @@ */ import { MARATHON_MATCH_SUBTRACKS, CHALLENGE_TRACKS, ALLOWED_USER_ROLES, ADMIN_ROLES } from '../config/constants' import _ from 'lodash' -import jwtDecode from 'jwt-decode' +import { decodeToken } from 'tc-auth-lib' export const RATING_COLORS = [{ color: '#9D9FA0' /* Grey */, @@ -56,6 +56,6 @@ export const checkAllowedRoles = (roles) => roles.some(val => ALLOWED_USER_ROLES * @param token */ export const checkAdmin = (token) => { - const roles = _.get(jwtDecode(token), 'roles') + const roles = _.get(decodeToken(token), 'roles') return roles.some(val => ADMIN_ROLES.indexOf(val.toLowerCase()) > -1) }