URI การเปลี่ยนเส้นทางคืออะไร มันใช้กับแอพ iOS สำหรับ OAuth2.0 อย่างไร


184

โปรแกรมเมอร์ผู้เริ่มต้นที่นี่โปรดอภัยความไม่รู้และคำอธิบายจะดีจริงๆ :)

ฉันพยายามอ่านบทแนะนำสำหรับบริการ OAuth 2.0 บางอย่าง แต่ฉันไม่เข้าใจ URI การเปลี่ยนเส้นทางนี้ ... ในบริบทเฉพาะของฉันสมมติว่าฉันกำลังพยายามสร้างแอป iPhone ที่ใช้ OAuth 2.0 สำหรับบริการบางอย่าง . ฉันมีรหัสแอปที่สร้างขึ้น แต่ฉันต้องจัดเตรียม URI การเปลี่ยนเส้นทางบางอย่างเพื่อสร้างคีย์ API

นี่เป็น URL ที่ฉันควรจะโฮสต์ด้วยตัวเองหรือไม่? ตามชื่อที่แนะนำฉันคิดว่า URL การเปลี่ยนเส้นทางควรจะ "เปลี่ยนเส้นทาง" บางคน ฉันเดาเพียงว่ามันเป็น URL ที่ผู้ใช้ถูกเปลี่ยนเส้นทางไปหลังจากพวกเขาเข้าสู่บริการ

อย่างไรก็ตามแม้ว่าข้อสันนิษฐานนั้นจะถูกต้อง แต่ฉันไม่เข้าใจสิ่งอื่น - แอพของฉันจะเปิดอีกครั้งได้อย่างไรหลังจากที่ฉันส่งพวกเขาไปยังเบราว์เซอร์สำหรับการเข้าสู่ระบบของผู้ใช้

คำตอบ:


194

อ่านนี่:

http://www.quora.com/OAuth-2-0/How-does-OAuth-2-0-work

หรือคำอธิบายที่ง่ายขึ้น แต่รวดเร็ว:

http://agileanswer.blogspot.se/2012/08/oauth-20-for-my-ninth-grader.html

URI เปลี่ยนเส้นทางเป็นจุดเริ่มต้นการติดต่อกลับของแอป ลองนึกดูว่า OAuth สำหรับ Facebook ทำงานอย่างไร - หลังจากผู้ใช้ยอมรับการอนุญาตแล้วจะต้องมีการเรียก "บางอย่าง" โดย Facebook เพื่อกลับไปที่แอพและ "บางสิ่ง" คือ URI การเปลี่ยนเส้นทาง นอกจากนี้ URI การเปลี่ยนเส้นทางควรแตกต่างจากจุดเริ่มต้นของแอป

อีกประเด็นสำคัญสำหรับปริศนานี้คือคุณสามารถเปิดแอปของคุณจาก URL ที่กำหนดให้กับเว็บวิว เมื่อต้องการทำสิ่งนี้ฉันเพียงทำตามคำแนะนำที่นี่:

http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

และ

http://inchoo.net/mobile-development/iphone-development/launching-application-via-url-scheme/

หมายเหตุ: ในลิงก์ 2 รายการสุดท้าย "http: //" ใช้งานได้ในการเปิดซาฟารีสำหรับมือถือ แต่ "tel: //" ไม่ทำงานในโปรแกรมจำลอง

ในแอพแรกที่ฉันโทร

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"secondApp://"]];

ในแอพที่สองของฉันฉันลงทะเบียน "secondApp" (และไม่ใช่ "secondApp: //") เป็นชื่อของ URL Scheme โดยที่ บริษัท ของฉันเป็นตัวระบุ URL


1
ดังนั้นคุณต้องตั้งค่าเว็บไซต์ของคุณเองใน redirect_uri นั้นถูกต้องหรือไม่
huggie

1
@huggie ในบริบทของแอพ iOS - โชคดีที่คุณไม่ต้องการเว็บไซต์ของคุณเอง คุณเพียงแค่ต้องตระหนักว่าแอป iOS ของคุณสามารถเปิดได้จาก URL ที่มอบให้กับเว็บเบราว์เซอร์ อ่าน: iosdevelopertips.com/cocoa/…
David T.

1
@Nazerke มันอาจจะเพิ่มว่า ": //" สำหรับคุณแล้ว ดังนั้นคุณจะต้องใช้ชื่อแบบแผน
David T.

1
ใครบางคนกรุณาแก้ไขคำตอบนี้ - architecture-soa-bpm-eai.blogspot.com.br/2012/08/…ไม่มีอยู่อีกต่อไป
Leo

2
สวัสดี @DavidT คำตอบที่ดี พวกเขากังวลเท่านั้นและหวังว่าคุณจะสามารถช่วยฉันได้นั่นคือวิธีกำหนดโครงร่างสำหรับ URI ที่ถูกบังคับให้ใช้http://เช่น[YouTube, Instagram, LinkedIn]? ฉันพยายามที่จะลงทะเบียนตัวอย่างเช่นการhttp://localhost/oauth2callbackเปลี่ยนเส้นทางและรูปแบบ http, localhost หรือ oauth2callback แต่ไม่ใช่ของพวกเขาใช้งานได้
Tal Zion

9

uri ที่เปลี่ยนเส้นทางคือตำแหน่งที่ผู้ใช้จะถูกเปลี่ยนเส้นทางหลังจากลงชื่อเข้าใช้แอปของคุณสำเร็จ ตัวอย่างเช่นในการเข้าถึงโทเค็นสำหรับแอพของคุณใน Facebook คุณต้องทำการเปลี่ยนเส้นทาง uri ซึ่งไม่ได้เป็นเพียงโดเมนแอพที่คุณให้เมื่อคุณสร้างแอพ Facebook ของคุณ



2

หากคุณใช้ Facebook SDK คุณไม่จำเป็นต้องป้อนตัวเองเพื่อเปลี่ยนเส้นทาง URI ในหน้าการจัดการแอพของ facebook เพียงตั้งค่าแบบแผน URL สำหรับแอป iOS ของคุณ แบบแผน URL ของแอปของคุณควรเป็นค่า "fbxxxxxxxxxxxx" โดยที่ xxxxxxxxxxx เป็นรหัสแอปของคุณตามที่ระบุใน facebook ในการตั้งค่ารูปแบบ URL สำหรับแอพ iOS ให้ไปที่แท็บข้อมูลของการตั้งค่าแอพและเพิ่มประเภท URL

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.