diff --git a/src/stores/login.js b/src/stores/login.js index 84225d0..9e20f99 100644 --- a/src/stores/login.js +++ b/src/stores/login.js @@ -7,10 +7,12 @@ export default defineStore('loginStore', { // state, actions, getters state: () => ({ auth: { - grant_type: 'password', + grant_type: 'password', // password | refresh_token username: '', password: '', + refresh_token: '' }, + refreshToken: '', isInvalid: false, userData: {}, }), @@ -29,9 +31,11 @@ export default defineStore('loginStore', { try { const response = await axios.post(api, this.auth, config); - const token = response.data.access_token; + const accessToken = response.data.access_token; + + this.refreshToken = response.data.refresh_token; // 將 token 儲存在 cookie - document.cookie = `luciaToken=${token};`; + document.cookie = `luciaToken=${accessToken};`; // // 取得當前日期 // const currentDate = new Date(); // // 設定 cookie 的過期日期為一天後 @@ -44,6 +48,22 @@ export default defineStore('loginStore', { this.isInvalid = true; }; }, + /** + * Refresh Token + */ + async refreshTokenLogin() { + const api = '/api/oauth/token'; + this.auth.grant_type = 'refresh_token'; + this.auth.refresh_token = this.refreshToken; + + try { + const response = await axios.post(api, this.auth, config); + const newAccessToken = response.data.access_token; + document.cookie = `luciaToken=${newAccessToken};`; + } catch(error) { + this.$router.push('/login'); + } + }, /** * Logout, tooken expired */