api auth
API(Collection) Auth
使用SDK 呼叫 API 需要授權,
不然會出現
設置授權
- 於Collection 點擊左上角的 齒輪 按鈕, 進入 Edit Collection 頁面
- 選擇API Rules 頁籤 -> 設置授權規則 -> 點擊 Save Changes 按鈕
進行測試
使用Postman 測試
- 取得Token
使用 Curl 呼叫API
curl --location 'http://127.0.0.1:8090/api/collections/users/auth-with-password' \
--header 'Content-Type: application/json' \
--data-raw '{
"identity": "OOOO@gmail.com",
"password": "XXXX"
}'
使用SDK 呼叫API
以下為從前端專案擷取的程式碼, 用來呼叫API, 僅提供範例參考, 無法直接使用。
import { ref, onMounted } from 'vue'
import { useAuthStore } from '~/stores/authStore'
import { ElMessage } from 'element-plus'
import PocketBase from 'pocketbase'
const pb = new PocketBase('http://127.0.0.1:8090')
const authStore = useAuthStore()
const posts = ref([])
const newPost = ref({ title: '', content: '' })
const editingPost = ref({})
const editDialogVisible = ref(false)
// 獲取所有文章
const fetchPosts = async () => {
try {
const records = await pb.collection('posts').getFullList({
sort: '-created',
})
posts.value = records
} catch (error) {
console.error('獲取文章失敗:', error)
ElMessage.error('獲取文章失敗')
}
}
// 創建新文章
const createPost = async () => {
try {
const data = {
...newPost.value,
username: authStore.user.name || authStore.user.email,
user_id: authStore.user.id,
}
await pb.collection('posts').create(data)
ElMessage.success('文章發布成功')
newPost.value = { title: '', content: '' }
await fetchPosts()
} catch (error) {
console.error('發布文章失敗:', error)
ElMessage.error('發布文章失敗')
}
}
// 編輯文章
const editPost = (post) => {
editingPost.value = { ...post }
editDialogVisible.value = true
}
// 更新文章
const updatePost = async () => {
try {
await pb.collection('posts').update(editingPost.value.id, {
title: editingPost.value.title,
content: editingPost.value.content,
})
ElMessage.success('文章更新成功')
editDialogVisible.value = false
await fetchPosts()
} catch (error) {
console.error('更新文章失敗:', error)
ElMessage.error('更新文章失敗')
}
}
// 刪除文章
const deletePost = async (id) => {
try {
console.log(id)
await pb.collection('posts').delete(id)
ElMessage.success('文章刪除成功')
await fetchPosts()
} catch (error) {
console.error('刪除文章失敗:', error)
ElMessage.error('刪除文章失敗')
}
}
onMounted(fetchPosts)