Skip to content

Commit

Permalink
🎉 able to refresh access token
Browse files Browse the repository at this point in the history
  • Loading branch information
songquanpeng committed Apr 18, 2023
1 parent eba27b9 commit 8be68c5
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 0 deletions.
23 changes: 23 additions & 0 deletions admin/src/components/Users.js
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,21 @@ class Users extends Component {
this.props.history.push('/users/new');
};

refreshToken = async ()=>{
try {
const res = await axios.post(`/api/user/refresh_token`);
const { status, message, accessToken } = res.data;
if (status) {
await navigator.clipboard.writeText(accessToken);
Message.success('Access Token 刷新成功,已复制到剪切板');
} else {
Message.error(message);
}
} catch (e) {
Message.error(e.message);
}
}

deleteUser = (id) => {
const that = this;
axios.delete(`/api/user/${id}`).then(async function (res) {
Expand Down Expand Up @@ -167,6 +182,14 @@ class Users extends Component {
>
创建新用户账户
</Button>
<Button
onClick={() => {
this.refreshToken().then();
}}
style={{ marginLeft: '16px' }}
>
刷新 Access Token
</Button>
</div>
);
}
Expand Down
27 changes: 27 additions & 0 deletions controllers/user.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const { Op } = require('sequelize');
const { User } = require('../models');
const axios = require('axios');
const { v4: uuidv4 } = require('uuid');
const { hashPasswordWithSalt, checkPassword } = require('../common/util');

async function login(req, res) {
Expand Down Expand Up @@ -59,6 +60,31 @@ async function status(req, res) {
});
}

async function refreshToken(req, res) {
let uuid = uuidv4();
let userId = req.session.user.id;
let user = await User.findOne({
where: {
id: userId
}
})
if (user) {
await user.update({
accessToken: uuid
});
res.json({
status: true,
message: 'ok',
accessToken: uuid
});
} else {
res.json({
status: false,
message: '用户不存在'
});
}
}

async function update(req, res) {
const id = req.body.id;
let username = req.body.username;
Expand Down Expand Up @@ -209,6 +235,7 @@ module.exports = {
login,
logout,
status,
refreshToken,
update,
get,
getAll,
Expand Down
1 change: 1 addition & 0 deletions routes/api-router.v1.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ router.delete('/page/:id', userRequired, page.delete_);
router.post('/user/login', user.login);
router.get('/user/logout', user.logout);
router.get('/user/status', userRequired, user.status);
router.post('/user/refresh_token', userRequired, user.refreshToken);
router.put('/user', adminRequired, user.update);
router.get('/user', adminRequired, user.getAll);
router.get('/user/:id', adminRequired, user.get);
Expand Down

0 comments on commit 8be68c5

Please sign in to comment.