forked from newthuhole/hole_thu_frontend
add reset usertoken
This commit is contained in:
@@ -19,6 +19,60 @@ export const TokenCtx=React.createContext({
|
|||||||
set_value: ()=>{},
|
set_value: ()=>{},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
class ResetUsertokenWidget extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state={
|
||||||
|
loading_status: 'done',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
do_reset() {
|
||||||
|
if(window.confirm('您正在重置 UserToken!\n您的账号将会在【所有设备】上注销,您需要手动重新登录!')) {
|
||||||
|
let uid=window.prompt('您正在重置 UserToken!\n请输入您的学号以确认身份:');
|
||||||
|
if(uid)
|
||||||
|
this.setState({
|
||||||
|
loading_status: 'loading',
|
||||||
|
},()=>{
|
||||||
|
fetch(PKUHELPER_ROOT+'api_xmcp/hole/reset_usertoken', {
|
||||||
|
method: 'post',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
user_token: this.props.token,
|
||||||
|
uid: uid,
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
.then(get_json)
|
||||||
|
.then((json)=>{
|
||||||
|
if(json.error)
|
||||||
|
throw new Error(json.error);
|
||||||
|
else
|
||||||
|
alert('重置成功!您需要在所有设备上重新登录。');
|
||||||
|
|
||||||
|
this.setState({
|
||||||
|
loading_status: 'done',
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch((e)=>{
|
||||||
|
alert('重置失败:'+e);
|
||||||
|
this.setState({
|
||||||
|
loading_status: 'done',
|
||||||
|
});
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
if(this.state.loading_status==='done')
|
||||||
|
return (<a onClick={this.do_reset.bind(this)}>重置</a>);
|
||||||
|
else if(this.state.loading_status==='loading')
|
||||||
|
return (<a><span className="icon icon-loading" /></a>);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class LoginForm extends Component {
|
export class LoginForm extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
@@ -161,7 +215,7 @@ export class LoginForm extends Component {
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<a onClick={this.copy_token.bind(this,token.value)}>复制 User Token</a><br />
|
<a onClick={this.copy_token.bind(this,token.value)}>复制 User Token</a><br />
|
||||||
User Token 可用于迁移登录状态,请勿泄露,因为它与您的账户唯一对应且泄露后无法重置
|
User Token 用于迁移登录状态,切勿告知他人,若不慎泄露请尽快 <ResetUsertokenWidget token={token.value} />
|
||||||
</p>
|
</p>
|
||||||
</div> :
|
</div> :
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
Reference in New Issue
Block a user