Browse Source

add reset usertoken

dev
xmcp 6 years ago
parent
commit
ffddaf95d2
  1. 56
      src/UserAction.js

56
src/UserAction.js

@ -19,6 +19,60 @@ export const TokenCtx=React.createContext({
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 {
constructor(props) {
super(props);
@ -161,7 +215,7 @@ export class LoginForm extends Component {
</p>
<p>
<a onClick={this.copy_token.bind(this,token.value)}>复制 User Token</a><br />
User Token 用于迁移登录状态请勿泄露因为它与您的账户唯一对应且泄露后无法重置
User Token 用于迁移登录状态切勿告知他人若不慎泄露请尽快 <ResetUsertokenWidget token={token.value} />
</p>
</div> :
<div>

Loading…
Cancel
Save