From 0dd780cbbe52a385108d2c6daf0fc5b27f1b1fcd Mon Sep 17 00:00:00 2001 From: Lucas Schoenfelder <les17@inf.ufpr.br> Date: Fri, 4 Dec 2020 10:12:03 -0300 Subject: [PATCH] added previous changes made to google login --- src/Components/Header.js | 75 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/src/Components/Header.js b/src/Components/Header.js index 9448ecef..e0ec468a 100644 --- a/src/Components/Header.js +++ b/src/Components/Header.js @@ -16,8 +16,9 @@ GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/>.*/ -import React, { useContext, useState } from 'react' - +import React, { useContext, useState, useEffect } from 'react' +import axios from 'axios' +import {apiUrl} from '../env' import AcessibilityBar from './AcessibilityBar' import MenuBar from './MenuBar' import SearchBar from './SearchBar' @@ -46,6 +47,76 @@ export default function Header(props){ const [successfulLoginOpen, handleSuccessfulLogin] = useState(false) const [modalColaborar, setModalColaborar] = useState(false) + useEffect ( () => { + if (state.currentUser.askTeacherQuestion == true) { + dispatch({ + type: "TOGGLE_MODAL_COLABORAR_PLATAFORMA", + modalColaborarPlataformaOpen: true + }); + } + }, [state.currentUser.askTeacherQuestion]) + + const redirect = () => { + props.history.push('/') + } + + let loc = useLocation() + useEffect(() => { + let query = new URLSearchParams(loc.search) + + //POR PARAMETRO + console.log(query.getAll("auth_token")) + if(query.get("auth_token") != undefined) { + let config = { + headers : { + "access-token" : query.get("auth_token"), + "client" : query.get("client_id"), + "uid" : query.get("uid"), + "expiry" : query.get("expiry"), + "token-type" : 'Bearer' + } + } + axios.get(`${apiUrl}/auth/validate_token/`, config).then( + (response) => { + console.log(response.data) + if ( response.headers['access-token'] ) { + sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token']) + } + dispatch ({ + type: "USER_LOGGED_IN", + userLoggedIn: !state.userIsLoggedIn, + login: { + askTeacherQuestion : response.data.data.ask_teacher_question, + id : response.data.data.id, + username : response.data.data.name, + email : response.data.data.email, + accessToken : response.headers['access-token'], + clientToken : response.headers.client, + userAvatar : response.data.data.avatar_file_name, + userCover : response.data.data.cover_file_name, + uid : response.data.data.uid, + followCount : response.data.data.follows_count, + collectionsCount : response.data.data.collections_count, + submitter_request : response.data.data.submitter_request, + roles : response.data.data.roles + } + } + ) + sessionStorage.setItem('@portalmec/accessToken', response.headers['access-token']) + sessionStorage.setItem('@portalmec/clientToken', response.headers.client) + sessionStorage.setItem('@portalmec/id', response.data.data.id) + sessionStorage.setItem('@portalmec/username', response.data.data.name) + sessionStorage.setItem('@portalmec/uid', response.data.data.uid) + redirect() + }, + (err) => { + console.log(err) + } + ) + } + }, [loc]) + + const toggleSnackbar = (event, reason) => { if (reason === 'clickaway') { return; -- GitLab