diff --git a/public/react/src/App.js b/public/react/src/App.js index e4cd6a732..84b5c0ae4 100644 --- a/public/react/src/App.js +++ b/public/react/src/App.js @@ -75,7 +75,10 @@ const Otherloginstart=Loadable({ loader: () => import('./modules/login/Otherloginstart'), loading: Loading, }) - +const Otherloginsqq=Loadable({ + loader: () => import('./modules/login/Otherloginqq'), + loading: Loading, +}) // const TestIndex = Loadable({ // loader: () => import('./modules/test'), // loading: Loading, @@ -527,6 +530,9 @@ class App extends Component { + diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js index ece36b61c..7bdecd966 100644 --- a/public/react/src/AppConfig.js +++ b/public/react/src/AppConfig.js @@ -21,16 +21,16 @@ let hashTimeout // TODO 开发期多个身份切换 let debugType ="" -if (isDev) { - const _search = window.location.search; - let parsed = {}; - if (_search) { - parsed = queryString.parse(_search); - } - debugType = window.location.search.indexOf('debug=t') != -1 ? 'teacher' : - window.location.search.indexOf('debug=s') != -1 ? 'student' : - window.location.search.indexOf('debug=a') != -1 ? 'admin' : parsed.debug || 'admin' -} +// if (isDev) { +// const _search = window.location.search; +// let parsed = {}; +// if (_search) { +// parsed = queryString.parse(_search); +// } +// debugType = window.location.search.indexOf('debug=t') != -1 ? 'teacher' : +// window.location.search.indexOf('debug=s') != -1 ? 'student' : +// window.location.search.indexOf('debug=a') != -1 ? 'admin' : parsed.debug || 'admin' +// } window._debugType = debugType; export function initAxiosInterceptors(props) { initOnlineOfflineListener() @@ -73,15 +73,22 @@ export function initAxiosInterceptors(props) { } requestProxy(config) - var url = `/api${config.url}`; + let url = `/api${config.url}`; + + //qq登录去掉api + if(config.params&&config.params.redirect_uri!=undefined){ + if(config.params.redirect_uri.indexOf('otherloginqq')!=-1){ + url = `${config.url}`; + } + } if(`${config[0]}`!=`true`){ if (window.location.port === "3007") { - if (url.indexOf('.json') == -1) { - - alert('开发提示:请给接口加.json:' + url) - - } + // if (url.indexOf('.json') == -1) { + // + // alert('开发提示:请给接口加.json:' + url) + // + // } config.url = `${proxy}${url}`; if (config.url.indexOf('?') == -1) { config.url = `${config.url}?debug=${debugType}`; diff --git a/public/react/src/modules/login/LoginDialog.js b/public/react/src/modules/login/LoginDialog.js index 46bdea005..574f46356 100644 --- a/public/react/src/modules/login/LoginDialog.js +++ b/public/react/src/modules/login/LoginDialog.js @@ -533,8 +533,8 @@ class LoginDialog extends Component { this.setState({ qqlogin:true }) - window.location.href=`https://graph.qq.com/oauth2.0/show?which=Login&display=pc&client_id=101508858&redirect_uri=https%3a%2f%2f${window.location.host}%2otherloginqq&response_type=code` - + //window.location.href=`https://graph.qq.com/oauth2.0/show?which=Login&display=pc&client_id=101508858&redirect_uri=https%3a%2f%2f${window.location.host}%2otherloginqq&response_type=code` + window.location.href=`https://graph.qq.com/oauth2.0/show?which=Login&display=pc&client_id=101508858&redirect_uri=https%3a%2f%2ftest-newweb.educoder.net%2fotherloginqq&response_type=code` // window.location.href=`https://graph.qq.com/oauth2.0/show?which=Login&display=pc&client_id=101508858&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherloginstart&tp=qq&response_type=code` } hideweixinlogin=()=>{ diff --git a/public/react/src/modules/login/Otherlogin.js b/public/react/src/modules/login/Otherlogin.js index 73f0c6dc6..59710ab2f 100644 --- a/public/react/src/modules/login/Otherlogin.js +++ b/public/react/src/modules/login/Otherlogin.js @@ -132,6 +132,8 @@ class Otherlogin extends Component { } postwechatlogin=(type,username,password)=>{ + let query=this.props.location.search; + const types = query.split('?type='); if(type===false){ if(username===undefined||username===""||username===null){ this.setState({ @@ -146,9 +148,11 @@ class Otherlogin extends Component { return } } + + let url = "/bind_user.json"; axios.post(url, { - type: 'wechat', + type: types[1]==="qq"?"qq":'wechat', not_bind:type, username:username, password:password diff --git a/public/react/src/modules/login/Otherloginqq.js b/public/react/src/modules/login/Otherloginqq.js new file mode 100644 index 000000000..ae614b474 --- /dev/null +++ b/public/react/src/modules/login/Otherloginqq.js @@ -0,0 +1,60 @@ +import React, { Component } from 'react'; + +import { BrowserRouter as Router, Route, Link } from "react-router-dom"; + +import { Spin } from 'antd'; +import axios from 'axios'; +class Otherloginqq extends Component { + + componentDidMount() { + let query=this.props.location.search; + + if(query!= ""){ + + } + const type = query.split('?code='); + let codeurl = `/auth/qq/callback`; + axios.get(codeurl,{params:{ + code:type[1], + redirect_uri:`https://test-newweb.educoder.net/otherloginqq` + }}).then((result)=> { + if(result){ + if(result.data.status===0){ + if(result.data.new_user===true){ + window.location.href="/otherlogin?type=qq" + }else{ + // this.getinfo() + if(types[1]==="account"){ + window.location.href="/account/binding" + }else{ + window.location.href="/" + } + + } + } + } + }).catch((error)=>{ + + }) + } + + render() { + // Loading + return ( +
+ + +
+ ); + } +} + +export default Otherloginqq; \ No newline at end of file diff --git a/public/react/src/modules/login/Otherloginstart.js b/public/react/src/modules/login/Otherloginstart.js index 97e06f9da..9901fc8ad 100644 --- a/public/react/src/modules/login/Otherloginstart.js +++ b/public/react/src/modules/login/Otherloginstart.js @@ -8,30 +8,34 @@ class Otherloginstart extends Component { componentDidMount() { let query=this.props.location.search; - const type = query.split('?code='); - const types = type[1].split('&state='); - let codeurl = `/auth/wechat/callback.json` - axios.get(codeurl,{params:{ - code:types[0] - }}).then((result)=> { - if(result){ - if(result.data.status===0){ - if(result.data.new_user===true){ - window.location.href="/otherlogin" - }else{ - // this.getinfo() - if(types[1]==="account"){ - window.location.href="/account/binding" + debugger + if(query!= ""){ + const type = query.split('?code='); + const types = type[1].split('&state='); + let codeurl = `/auth/wechat/callback.json` + axios.get(codeurl,{params:{ + code:types[0] + }}).then((result)=> { + if(result){ + if(result.data.status===0){ + if(result.data.new_user===true){ + window.location.href="/otherlogin?type=wechat" }else{ - window.location.href="/" - } + // this.getinfo() + if(types[1]==="account"){ + window.location.href="/account/binding" + }else{ + window.location.href="/" + } + } } } - } - }).catch((error)=>{ + }).catch((error)=>{ + + }) + } - }) }