全部产品
Search
文档中心

Drive and Photo Service:Akses OAuth 2.0 untuk aplikasi server web

更新时间:Jan 17, 2026

Topik ini menjelaskan cara mengakses Drive and Photo Service (PDS) dari aplikasi server web menggunakan OAuth 2.0.

Pengenalan OAuth 2.0

OAuth 2.0 memungkinkan Anda memberikan otorisasi kepada layanan pihak ketiga untuk mengakses resource Anda tanpa mengungkapkan kata sandi akun Anda.

OAuth 2.0 mendukung metode otorisasi berikut: Authorization Code, Implicit, Resource Owner Password Credentials, dan Client Credentials. Metode Authorization Code menawarkan tingkat keamanan tertinggi, dan dalam topik ini, metode tersebut digunakan.

Gambar berikut mengilustrasikan proses otorisasi OAuth 2.0 menggunakan metode Authorization Code.

a2

Proses akses untuk aplikasi server web

image

Proses:

  1. Login dan otorisasi

    Pengguna mengakses aplikasi server web. Aplikasi tersebut mengarahkan permintaan akses ke server autentikasi. Pengguna diminta untuk menyetujui atau menolak otorisasi aplikasi server web tersebut.

  2. Mendapatkan access token

    1. Jika pengguna menyetujui otorisasi, server otorisasi mengarahkan permintaan akses ke URI pengalihan yang telah ditentukan oleh aplikasi dan menghasilkan kode otorisasi.

    2. Setelah menerima kode otorisasi, aplikasi server web meminta token akses dari server autentikasi. Dengan cara ini, pengguna memperoleh token akses.

  3. Mengakses resource

    Pengguna menggunakan token akses untuk mengakses API PDS di frontend aplikasi server web.

Prasyarat

  • Layanan yang mendukung OAuth 2.0 sudah siap.

  • PDS Developer Edition telah diaktifkan. Untuk informasi lebih lanjut, lihat Memulai dengan PDS.

Prosedur

Langkah 1: Memperoleh ID dan rahasia aplikasi

  1. Masuk ke konsol PDS. Di panel navigasi sebelah kiri, pilih Drive and Photo Service (Developer Edition) > Domains.

  2. Temukan domain yang ingin digunakan dan klik Details di kolom Actions.

  3. Buat aplikasi.

    Catatan

    Jika tidak ada aplikasi yang tersedia, buat aplikasi sebelum melakukan operasi selanjutnya.

    1. Di halaman detail domain, klik tab Applications, lalu klik Create Application.

    2. Di panel yang muncul, tentukan parameter dan klik OK.

      Untuk parameter Type, pilih WebServer (Web Server Application).

      image

  4. Di daftar aplikasi, lihat ID (client_id) dan Secret (client_secret) dari aplikasi yang dibuat.

    Penting

    Rahasia tersebut harus dijaga kerahasiaannya.

Langkah 2: Otorisasi logon berbasis OAuth 2.0

  1. Konfigurasikan parameter otorisasi

    Jika pengguna yang belum menyelesaikan otorisasi mengakses aplikasi server web Anda menggunakan browser, aplikasi Anda harus membuat permintaan otorisasi. Permintaan mencakup client_id aplikasi Anda dan ruang lingkup izin. Permintaan dikirim dari pengguna ke server otorisasi PDS, yang memungkinkan pengguna memberikan izin yang diperlukan kepada aplikasi Anda.

    Contoh Permintaan:

    GET /v2/oauth/authorize?client_id=<ID>&redirect_uri=<redirect_uri>&login_type=<login_type>&scope=<scope>&response_type=code&state=[state] HTTP/1.1
    Host: {domainId}.api.aliyunpds.com

    Tabel berikut menjelaskan parameter permintaan:

    Parameter

    Diperlukan

    Deskripsi

    client_id

    Ya

    ID aplikasi. Untuk informasi cara mendapatkan ID, lihat Dapatkan ID dan secret aplikasi.

    redirect_uri

    Ya

    URL callback, yaitu URL tempat permintaan dialihkan setelah otorisasi berhasil. Contoh: https://example.com/callback.

    Setelah otorisasi berhasil, permintaan pengguna dialihkan ke URL tersebut. URL ini membawa kode verifikasi sekali pakai, misalnya https://example.com/callback?code=xxxx.

    Catatan

    Pastikan bahwa URL callback sesuai dengan URL callback OAuth 2.0 yang Anda tentukan saat membuat aplikasi.

    scope

    Tidak

    Ruang lingkup yang menentukan izin pada tindakan yang diperlukan oleh aplikasi Anda. Ruang lingkup adalah subset dari yang Anda tentukan saat membuat aplikasi dan ditampilkan di halaman persetujuan. Untuk informasi lebih lanjut, lihat Scopes.

    Catatan

    Izin yang diwakili oleh token akses adalah irisan dari izin pengguna dan izin yang ditentukan oleh ruang lingkup.

    response_type

    Ya

    Jenis respons. Tetapkan nilainya ke code.

    state

    Tidak, tetapi direkomendasikan

    Status (state). Jika permintaan membawa parameter ini, server otentikasi akan mengembalikan permintaan dalam status yang sama untuk mencegah serangan Cross Site Request Forgery (CSRF). Contoh: https://example.com/callback?code=xxxx&state=abc.

    login_type

    Ya

    Opsi logon. Nilai valid:

    • default: menyediakan halaman logon komprehensif yang mendukung logon nomor ponsel dan metode logon lainnya.

    • phone: logon nomor ponsel.

    • ding: logon dengan DingTalk.

    • ldap: logon berdasarkan Lightweight Directory Access Protocol (LDAP) atau Active Directory (AD).

    • wx: logon dengan akun WeChat.

    • ram: logon sebagai Pengguna Resource Access Management (RAM).

    • lark: logon dengan Lark.

    • saml: logon dengan akun pihak ketiga berdasarkan protokol Security Assertion Markup Language (SAML).

    hide_consent

    Tidak

    Menentukan apakah akan melewati halaman otorisasi pengguna untuk upaya logon berikutnya setelah logon pertama berhasil. Nilai valid:

    • true (default): Halaman otorisasi tidak ditampilkan. Pengguna langsung menuju langkah berikutnya.

    • false: Halaman otorisasi ditampilkan.

    lang

    Tidak

    Bahasa dalam halaman ditampilkan. Nilai valid:

    • zh_CN (default): Bahasa Mandarin Sederhana

    • en_US: Bahasa Inggris

  2. Halaman Persetujuan

    Di halaman persetujuan, pengguna dapat memutuskan apakah akan memberikan izin kepada aplikasi. Jika pengguna menolak, proses berakhir. Jika menyetujui, server otorisasi PDS mengalihkan permintaan pengguna ke redirection URI yang ditentukan di Langkah 2.1. Contoh: https://example.com/callback?code=xxxx&state=abc.

  3. Tukar kode otorisasi dengan token akses

    Aplikasi server web terdiri dari dua bagian: antarmuka depan (frontend) dan backend. Anda harus mengonfigurasi URL pengalihan, seperti https://example.com/callback, di frontend. Setelah menerima parameter ?code=xxx, frontend mengurai kode tersebut dan meneruskannya ke backend. Backend kemudian menggunakan metode berikut untuk mendapatkan access token dan mengembalikannya ke frontend.

    Contoh Permintaan:

    POST /v2/oauth/token HTTP/1.1
    Host: {domainId}.api.aliyunpds.com
    Content-Type: application/x-www-form-urlencoded
    
    code=xxx\
    &client_id=your_app_id\
    &client_secret=your_app_secret\
    &redirect_uri=https://example.com/callback\
    &grant_type=authorization_code

    Parameter

    Diperlukan

    Deskripsi

    code

    Ya

    code otorisasi sekali pakai.

    client_id

    Ya

    ID aplikasi. Untuk informasi cara mendapatkan ID, lihat Dapatkan ID dan secret aplikasi.

    client_secret

    Ya

    secret yang dihasilkan saat Anda membuat aplikasi.

    redirect_uri

    Ya

    URL callback, yaitu URL tempat permintaan dialihkan setelah otorisasi berhasil. Contoh: https://example.com/callback.

    Catatan

    Pastikan bahwa URL callback sesuai dengan URL callback OAuth 2.0 yang Anda tentukan saat membuat aplikasi.

    grant_type

    Ya

    Jenis grant. Tetapkan nilainya ke authorization_code, yang menunjukkan metode Authorization Code.

    Contoh Respons:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
      "access_token":"Aiasd76*****",
      "expires_time":"2019-11-11T10:10:10.009Z",
      "expire_in": 7200,
      "token_type":"Bearer",
      "refresh_token":"LSLKdk*******"
    }

    Parameter

    Posisi

    Tipe

    Diperlukan

    Deskripsi

    access_token

    body

    string

    Ya

    access token yang dihasilkan, berlaku selama dua jam.

    refresh_token

    body

    string

    Ya

    Token penyegaran (refresh token) yang digunakan untuk menyegarkan access token. Umumnya, periode validitas refresh token adalah tujuh hari.

    expires_time

    body

    string

    Ya

    Waktu kedaluwarsa access token.

    expire_in

    body

    long

    Ya

    Periode validitas access token. Satuan: detik. Nilai default: 7200.

    token_type

    body

    string

    Ya

    Jenis token. Nilainya adalah Bearer.

  4. Panggil API PDS

    Antarmuka depan web dapat menggunakan access token untuk memanggil operasi API PDS. access token harus disertakan dalam header Authorization pada permintaan API.

    Untuk informasi lebih lanjut, lihat Metode Pemanggilan.

Segarkan token akses

Contoh Permintaan:

POST /v2/oauth/token HTTP/1.1
Host: {domainId}.api.aliyunpds.com
Content-Type: application/x-www-form-urlencoded

refresh_token=xxx\
&client_id=xxx\
&client_secret=xxx\
&grant_type=refresh_token

Tabel berikut menjelaskan parameter permintaan:

Parameter

Diperlukan

Deskripsi

refresh_token

Ya

Token refresh yang dikembalikan saat Anda menukar kode otorisasi dengan token akses.

client_id

Ya

Aplikasi ID.

grant_type

Ya

Jenis grant. Tetapkan nilainya ke refresh_token.

client_secret

Ya

Rahasia aplikasi, yang digunakan untuk mengotentikasi aplikasi.

Contoh Respons:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "access_token":"xxxxxxxxx",
  "refresh_token": "xxxxx",
  "expires_in":7200,
  "expire_time":"2019-11-11T10:10:10.009Z",
  "token_type":"Bearer"
}

Parameter

Posisi

Tipe

Diperlukan

Deskripsi

access_token

body

string

Ya

access token yang dihasilkan, berlaku selama dua jam.

refresh_token

body

string

Ya

Token penyegaran yang digunakan untuk menyegarkan access token. Umumnya, periode validitas refresh token adalah tujuh hari.

expires_time

body

string

Ya

Waktu kedaluwarsa access token.

expire_in

body

long

Ya

Periode validitas access token. Satuan: detik. Nilai default: 7200.

token_type

body

string

Ya

Jenis token. Nilainya adalah Bearer.

FAQ

Berapa lama masa berlaku kode otorisasi?

Kode otorisasi valid selama 10 menit dan menjadi tidak valid setelah digunakan.

Berapa Lama Token Akses Valid?

Token akses valid selama 2 jam.

Apa yang Harus Dilakukan Jika Token Akses Kedaluwarsa?

Gunakan refresh token untuk mendapatkan access token baru.

Referensi