token OAuth box-java-sdk-v2 dalam skenario Server Web

Saya sedang melihat Java SDK Box di https://github.com/box/box-java-sdk-v2

Saya melihat cuplikan sampel

String url = "https://www.box.com/api/oauth2/authorize?response_type=code&client_id=" +    key + "&redirect_uri=http%3A//localhost%3A" + PORT;
try {
        Desktop.getDesktop().browse(java.net.URI.create(url));
        code = getCode();
        System.out.println("code: " + code);
    } catch (IOException e) {
        e.printStackTrace();
}

"kode" digunakan untuk membuat "BoxOAuthToken"

Ini berfungsi dengan baik!

Pertanyaan saya: "kode" harus dibuat untuk setiap permintaan. Ini melibatkan peluncuran browser dan meminta pengguna mengautentikasi terhadap Box. Tapi bagaimana jika saya ingin menjalankan ini di Server Web dan mengekspos layanan web? Saya ingin pengguna mengautentikasi dari browser mereka dan membiarkan Server Web memanggil

BoxFolder boxFolder= client.getFoldersManager().getFolder("0",null);
ArrayList<BoxTypedObject> folderEntries = boxFolder.getItemCollection().getEntries();

dan mengembalikan hasilnya ke klien/pengguna sebagai JSON.

Adakah ide tentang bagaimana hal ini dapat dicapai?

Untuk saat ini, Server Web saya secara langsung memanggil API (mis. api.box.com/2.0/folders/0) menggunakan HTTP Apache Commons dan meneruskan token dengan header "Otorisasi" dan itu berfungsi. Tapi saya bertanya-tanya apakah saya bisa menggunakan SDK.


person user3646378    schedule 25.08.2014    source sumber


Jawaban (1)


Anda tidak perlu melakukan jabat tangan OAuth untuk setiap permintaan. Fungsi getCode mengikat ke soket untuk mendapatkan panggilan balik dari Box yang mensimulasikan jabat tangan tradisional.

Anda cukup mengubah kode Anda menjadi berikut:

1) Gunakan apa pun yang Anda lakukan untuk mendapatkan token otorisasi. Proses ini juga akan memberi Anda token penyegaran
2) atur BoxClient Anda dengan id klien, rahasia klien, otorisasi, dan penyegaran.
3) Lakukan panggilan seperti yang Anda lihat di sana.

Beberapa catatan:
1) Token akses berlaku selama 60 menit. Anda harus menggunakan token penyegaran untuk menghasilkan token akses baru setelah ini. Token penyegaran berlaku selama 60 hari. Saat Anda mendapatkan token akses baru, Anda akan mendapatkan token penyegaran baru.

person Michael Cizmar    schedule 02.09.2014
comment
Terima kasih Michael! Saya akan mencobanya. - person user3646378; 05.09.2014