vue js การ handle 401

ใน Vue.js, การจัดการกับการตอบกลับ HTTP รหัส 401 (Unauthorized) คือการจัดการเมื่อผู้ใช้ไม่ได้รับอนุญาตให้เข้าถึงทรัพยากรหรือสิทธิ์การใช้งานหมดอายุ นี่คือวิธีการจัดการกับ HTTP 401 ใน Vue.js:

  1. การใช้งาน Axios หรือ HTTP Library:

    ในโปรเจกต์ Vue.js ของคุณ, คุณจะใช้ Axios หรือหนังสือรับอาหาร HTTP อื่น ๆ เพื่อทำการ HTTP requests ไปยังเซิร์ฟเวอร์. ในส่วนของการตรวจสอบการตอบกลับ HTTP 401, คุณสามารถใช้ axios.interceptors เพื่อจัดการกับข้อผิดพลาดที่เกิดขึ้น.

    ตัวอย่างการตรวจสอบ HTTP 401 และจัดการกับมัน:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import axios from 'axios';

    // ตั้งค่า interceptor สำหรับตรวจสอบ HTTP 401
    axios.interceptors.response.use(
    (response) => {
    // ตรวจสอบสถานะการตอบกลับ
    return response;
    },
    (error) => {
    // จัดการกับข้อผิดพลาด HTTP 401
    if (error.response && error.response.status === 401) {
    // กระทำตามที่คุณต้องการ เช่น ให้ผู้ใช้เข้าสู่ระบบใหม่
    // หรือทำการ refresh token แล้วลอง request อีกครั้ง
    }
    return Promise.reject(error);
    }
    );

    // ตอนนี้คุณสามารถใช้ Axios ในที่อื่นในโปรเจกต์ Vue.js ของคุณ
  2. การแสดงข้อผิดพลาดให้ผู้ใช้:

    เมื่อคุณตรวจสอบการตอบกลับ HTTP 401 แล้วคุณสามารถแสดงข้อความหรือข้อผิดพลาดให้กับผู้ใช้ เช่น แสดงการแจ้งเตือนหรือแสดงหน้าเข้าสู่ระบบใหม่ หรือทำการ refresh token แล้วลอง request อีกครั้ง.

    ตัวอย่างการแสดงข้อผิดพลาดใน Vue component:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <template>
    <div>
    <h1>My App</h1>
    <div v-if="error">
    <p>{{ error }}</p>
    </div>
    </div>
    </template>

    <script>
    import axios from 'axios';

    export default {
    data() {
    return {
    error: null,
    };
    },
    methods: {
    fetchData() {
    axios.get('/api/data')
    .then((response) => {
    // ดำเนินการตามปกติ
    })
    .catch((error) => {
    if (error.response && error.response.status === 401) {
    // แสดงข้อความหรือทำการจัดการข้อผิดพลาด HTTP 401
    this.error = 'คุณไม่ได้รับอนุญาตให้เข้าถึงข้อมูลนี้';
    } else {
    // จัดการกับข้อผิดพลาดอื่น ๆ ตามที่คุณต้องการ
    this.error = 'เกิดข้อผิดพลาดในการดึงข้อมูล';
    }
    });
    },
    },
    mounted() {
    this.fetchData();
    },
    };
    </script>
  3. การทำ Refresh Token:

    หากคุณใช้ระบบการรับรองสิทธิ์แบบ Token และได้รับ HTTP 401 เนื่องจาก Token หมดอายุ, คุณสามารถทำ Refresh Token และลอง request ใหม่. นี่คือตัวอย่างการ Refresh Token:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import axios from 'axios';

    function refreshToken() {
    return axios.post('/api/refresh-token')
    .then((response) => {
    // นำ Token ใหม่ที่ได้รับมาใช้งาน
    const newToken = response.data.token;
    axios.defaults.headers.common['Authorization'] = `Bearer ${newToken}`;
    // ทำ request อีกครั้ง
    return axios.request(error.config);
    });
    }

    axios.interceptors.response.use(
    (response) => {
    return response;
    },
    (error) => {
    if (error.response && error.response.status === 401) {
    // ทำ Refresh Token และลอง request อีกครั้ง
    return refreshToken()
    .catch((refreshError) => {
    return Promise.reject(refreshError);
    });
    }
    return Promise.reject(error);
    }
    );

    นี่คือวิธีการจัดการกับ HTTP 401 ใน Vue.js โดยใช้ Axios และแสดงข้อความผิดพลาดหรือทำการ Refresh Token ตามสถานการณ์ของแอ

ปพลิเคชันของคุณ. การจัดการ HTTP 401 จะช่วยให้คุณรักษาความปลอดภัยและประสิทธิภาพของแอปพลิเคชันของคุณ.