box-java-sdk-v2 โทเค็น OAuth ในสถานการณ์เว็บเซิร์ฟเวอร์

ฉันกำลังดู Java SDK ของ Box อยู่ที่ https://github.com/box/box-java-sdk-v2

ฉันเห็นตัวอย่างแล้ว

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();
}

"code" ใช้เพื่อสร้าง "BoxOAuthToken"

มันใช้ได้ดี!

คำถามของฉัน: ต้องสร้าง "รหัส" สำหรับทุกคำขอ สิ่งนี้เกี่ยวข้องกับการเปิดเบราว์เซอร์และให้ผู้ใช้ตรวจสอบสิทธิ์กับ Box แต่ถ้าฉันต้องการเรียกใช้สิ่งนี้บนเว็บเซิร์ฟเวอร์และเปิดเผยบริการบนเว็บล่ะ ฉันต้องการให้ผู้ใช้ตรวจสอบสิทธิ์จากเบราว์เซอร์ของพวกเขาและปล่อยให้เว็บเซิร์ฟเวอร์เรียกใช้

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

และให้ส่งคืนผลลัพธ์ไปยังไคลเอนต์/ผู้ใช้เป็น JSON

มีความคิดเห็นเกี่ยวกับวิธีการบรรลุเป้าหมายนี้หรือไม่?

ในตอนนี้ เว็บเซิร์ฟเวอร์ของฉันกำลังเรียกใช้ API โดยตรง (เช่น api.box.com/2.0/folders/0) โดยใช้ Apache Commons HTTP และส่งโทเค็นด้วยส่วนหัว "การอนุญาต" และนั่นก็ใช้งานได้ แต่ฉันสงสัยว่าฉันสามารถใช้ SDK ได้หรือไม่


person user3646378    schedule 25.08.2014    source แหล่งที่มา


คำตอบ (1)


คุณไม่จำเป็นต้องดำเนินการจับมือ OAuth สำหรับทุกคำขอ ฟังก์ชัน getCode เชื่อมโยงกับซ็อกเก็ตเพื่อรับการโทรกลับจาก Box ซึ่งจำลองการจับมือแบบดั้งเดิม

คุณสามารถเปลี่ยนรหัสของคุณเป็นดังต่อไปนี้:

1) ใช้สิ่งที่คุณกำลังทำเพื่อรับโทเค็นการอนุญาต กระบวนการนี้ควรให้โทเค็นการรีเฟรชแก่คุณ
2) ตั้งค่า BoxClient ของคุณด้วยรหัสไคลเอ็นต์ รหัสลับไคลเอ็นต์ การอนุญาต และการรีเฟรช
3) โทรออกตามที่เห็น

หมายเหตุ 2-3 ข้อ:
1) โทเค็นการเข้าถึงใช้งานได้นาน 60 นาที คุณจะต้องใช้โทเค็นการรีเฟรชเพื่อสร้างโทเค็นการเข้าถึงใหม่หลังจากนี้ โทเค็นการรีเฟรชมีอายุการใช้งาน 60 วัน เมื่อคุณได้รับโทเค็นการเข้าถึงใหม่ คุณจะได้รับโทเค็นการรีเฟรชใหม่

person Michael Cizmar    schedule 02.09.2014
comment
ขอบคุณไมเคิล! ฉันจะลองสิ่งนี้ - person user3646378; 05.09.2014