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: ()=>{},
|
||||
});
|
||||
|
||||
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>
|
||||
|
||||
Reference in New Issue
Block a user