diff --git a/.circleci/config.yml b/.circleci/config.yml index 6bb179fa..b4b21bd8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -73,7 +73,7 @@ workflows: filters: branches: only: - - develop + - "feature/Auth0-RS256-Token" # Production builds are exectuted only on tagged commits to the # master branch. @@ -81,4 +81,4 @@ workflows: context : org-global filters: branches: - only: master \ No newline at end of file + only: master diff --git a/config/constants/development.js b/config/constants/development.js index 4619d647..72d2edd3 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`, 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 /**