低代码表单FormCreate中为了确保全部的接口请求都包含认证 Token,您可以重写内置的请求方法,并在请求前动态地设置 Token。这不仅确保了请求的安全性,也使得 Token 的管理更加会合和同等。
源码地址: Github | Gitee | 资助文档
重写内置请求方法并设置 Token
您可以自定义 formCreate.fetch 方法,以便在每次请求时主动附加 Token。
- formCreate.fetch = (options) => {
- // 获取或生成 Token
- const token = 'your-auth-token'; // 这里的 token 可以从 Vuex、localStorage 或其他地方获取
- // 设置请求头,附加 Authorization token
- const headers = {
- ...options.headers,
- Authorization: `Bearer ${token}`,
- };
- // 发起请求
- fetch(options.action, {
- method: options.method || 'GET', // 默认请求方法为 GET
- headers: headers, // 包含 Authorization 的请求头
- body: options.method !== 'GET' ? JSON.stringify(options.data) : null, // 如果是 POST 或其他方法,添加请求体
- })
- .then(response => response.json()) // 解析响应为 JSON
- .then(data => {
- if (options.onSuccess) {
- options.onSuccess(data); // 成功回调
- }
- })
- .catch(error => {
- if (options.onError) {
- options.onError(error); // 失败回调
- }
- });
- };
复制代码 在请求前设置 Token
通过 beforeFetch 钩子,您可以在每次请求发送前设置 Token。以下是如何在 Vue 组件中利用这个钩子:
- <template>
- <form-create :rule="rule" v-model:api="fApi" :option="options" />
- </template>
- <script setup>
- import { ref } from 'vue';
- const fApi = ref({});
- const options = {
- // 在请求发送前的钩子
- beforeFetch: (options) => {
- // 动态设置请求头中的 Authorization token
- const token = 'your-auth-token'; // 这里的 token 可以从任何存储中获取
- options.headers = {
- Authorization: `Bearer ${token}`
- };
- }
- };
- const rule = [
- {
- type: 'select',
- field: 'product',
- title: '选择产品',
- fetch: {
- action: '/api/products',
- to: 'options',
- parse: (res) => res.data.map(product => ({ label: product.name, value: product.id })),
- onError: (error) => console.error('加载产品数据失败:', error),
- },
- }
- ];
- </script>
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |