Lewati ke konten
aithordev.my.id

Autentikasi

Cookie + nonce untuk permintaan dari browser, Application Password untuk otomasi.

Di halaman ini

Editor GitDocs berjalan sebagai pengguna yang sedang masuk. WordPress memverifikasi nonce wp_rest pada setiap permintaan; tanpa nonce yang sah, permintaan dianggap datang dari pengunjung anonim dan seluruh pemeriksaan kapabilitas gagal.

JavaScript
// Cara termudah: apiFetch sudah menyertakan nonce secara otomatis.
const page = await wp.apiFetch( { path: '/gitdocs/v1/pages/42' } );

await wp.apiFetch( {
    path: '/gitdocs/v1/pages/42',
    method: 'POST',
    data: { mode: 'save', markdown: '## Judul baru\n' },
} );

Bila memakai fetch mentah, sertakan nonce sendiri:

JavaScript
await fetch( '/wp-json/gitdocs/v1/pages/42', {
    method: 'POST',
    credentials: 'same-origin',
    headers: {
        'Content-Type': 'application/json',
        'X-WP-Nonce': window.wpApiSettings.nonce,
    },
    body: JSON.stringify( { mode: 'save', markdown: '## Judul baru\n' } ),
} );

Dari luar (Application Password)

Untuk skrip, CI, atau integrasi, buat Application Password di Pengguna β†’ Profil.

curl

Bash
curl -u "nama_pengguna:xxxx xxxx xxxx xxxx xxxx xxxx" \
  -H "Content-Type: application/json" \
  -X POST https://situs.id/wp-json/gitdocs/v1/pages \
  -d '{"title":"Halaman baru","markdown":"## Halo\n","space":2}'

PHP

PHP
$response = wp_remote_post(
    'https://situs.id/wp-json/gitdocs/v1/pages',
    array(
        'headers' => array(
            'Authorization' => 'Basic ' . base64_encode( 'nama_pengguna:' . $app_password ),
            'Content-Type'  => 'application/json',
        ),
        'body'    => wp_json_encode(
            array(
                'title'    => 'Halaman baru',
                'markdown' => "## Halo\n",
                'space'    => 2,
            )
        ),
    )
);

Node.js

JavaScript
const auth = Buffer.from( `${ user }:${ appPassword }` ).toString( 'base64' );

const response = await fetch( 'https://situs.id/wp-json/gitdocs/v1/pages', {
    method: 'POST',
    headers: {
        Authorization: `Basic ${ auth }`,
        'Content-Type': 'application/json',
    },
    body: JSON.stringify( { title: 'Halaman baru', markdown: '## Halo\n', space: 2 } ),
} );

Application Password setara dengan kata sandi akun untuk REST API. Simpan sebagai secret (variabel lingkungan atau brankas rahasia), jangan pernah dimasukkan ke dalam repositori, dan cabut segera bila bocor.

Kapabilitas

Halaman dokumentasi memakai kapabilitas bawaan WordPress untuk tulisan (edit_posts, publish_posts, delete_posts), sehingga peran standar berlaku apa adanya:

Peran Membuat Menyunting milik sendiri Menyunting milik orang lain Menerbitkan Mengelola space
Administrator βœ… βœ… βœ… βœ… βœ…
Editor βœ… βœ… βœ… βœ… βœ…
Penulis βœ… βœ… β€” βœ… β€”
Kontributor βœ… βœ… (draf) β€” β€” β€”

Kontributor yang menekan Terbitkan akan mengirim halaman berstatus Menunggu tinjauan.

Pengguna tanpa kapabilitas unfiltered_html tetap dapat menulis Markdown apa pun: HTML hasil render disanitasi dengan kses, sama seperti konten WordPress lainnya. Komponen GitDocs dirancang agar tetap utuh setelah sanitasi.

Cari dokumentasi

    Ketik untuk mulai mencari.