ภาพรวมของ OAuth: ผู้ใช้ที่เขา / เธอบอกว่าเขาคือใคร:
ฉันไม่แน่ใจว่าคุณใช้ OAuth เพื่อลงชื่อเข้าใช้ Stack Overflow หรือไม่เช่นตัวเลือก "เข้าสู่ระบบด้วย Google" แต่เมื่อคุณใช้คุณลักษณะนี้ Stack Overflow จะถาม Google ว่าคุณรู้หรือไม่:
"ยอ Google เพื่อนของ Vinesh คนนี้อ้างว่า vinesh.e@gmail.com คือเขาจริงหรือ?"
หากคุณลงชื่อเข้าใช้แล้ว Google จะระบุว่าใช่ หากไม่เป็นเช่นนั้น Google จะพูดว่า:
"รอสักครู่ Stack Overflow ฉันจะตรวจสอบความถูกต้องของผู้หญิงคนนี้และถ้าเขาสามารถป้อนรหัสผ่านที่ถูกต้องสำหรับบัญชี Google ของเขาก็แสดงว่าเป็นเขา"
เมื่อคุณป้อนรหัสผ่าน Google Google จะบอก Stack Overflow ว่าคุณคือใครและ Stack Overflow จะบันทึกคุณเข้า
เมื่อคุณออกจากระบบแอปคุณกำลังออกจากระบบแอปของคุณ :
นี่คือสิ่งที่นักพัฒนาที่เพิ่งเริ่มใช้ OAuth บางครั้งอาจสับสนเล็กน้อย ... Google และ Stack Overflow, Assembla, เว็บแอปพลิเคชันที่ยอดเยี่ยมของ Vinesh เป็นเอนทิตีที่แตกต่างกันทั้งหมดและ Google ไม่ทราบอะไรเกี่ยวกับบัญชีของคุณบนเว็บแอปที่ยอดเยี่ยมของ Vinesh และรอง ในทางกลับกันนอกเหนือจากสิ่งที่เปิดเผยผ่าน API ที่คุณใช้เพื่อเข้าถึงข้อมูลโปรไฟล์
เมื่อผู้ใช้ของคุณออกจากระบบไม่ได้ออกจากระบบ Google แสดงว่ากำลังออกจากระบบแอปของคุณหรือ Stack Overflow หรือ Assembla หรือเว็บแอปพลิเคชันใดก็ตามที่ใช้ Google OAuth ในการตรวจสอบสิทธิ์ผู้ใช้
อันที่จริงฉันสามารถออกจากระบบบัญชี Google ทั้งหมดของฉันและยังคงเข้าสู่ระบบ Stack Overflow เมื่อแอปของคุณทราบว่าผู้ใช้คือใครบุคคลนั้นจะสามารถออกจากระบบ Google ได้ Google ไม่จำเป็นอีกต่อไป
ด้วยเหตุนี้สิ่งที่คุณขอให้ทำคือนำผู้ใช้ออกจากบริการที่ไม่ได้เป็นของคุณจริงๆ ลองคิดดู: ในฐานะผู้ใช้คุณคิดว่าฉันจะรำคาญแค่ไหนถ้าฉันเข้าสู่ระบบ 5 บริการที่แตกต่างกันด้วยบัญชี Google ของฉันจากนั้นในครั้งแรกที่ฉันออกจากหนึ่งในนั้นฉันต้องลงชื่อเข้าใช้บัญชี Gmail ของฉัน อีกครั้งเพราะนักพัฒนาแอปนั้นตัดสินใจว่าเมื่อฉันออกจากระบบแอปพลิเคชันของเขาฉันควรออกจากระบบ Google ด้วยหรือไม่? มันจะแก่เร็วจริงๆ ในระยะสั้นคุณไม่ต้องการทำสิ่งนี้จริงๆ ...
ใช่แล้วยังไงก็ตามฉันยังต้องการนำผู้ใช้ออกจาก Google เพียงบอกฉันว่าฉันจะทำสิ่งนี้ได้อย่างไร
จากที่กล่าวมาหากคุณยังไม่ต้องการนำผู้ใช้ออกจาก Google และตระหนักว่าคุณอาจขัดขวางขั้นตอนการทำงานของพวกเขาได้เป็นอย่างดีคุณสามารถสร้าง URL การออกจากระบบแบบไดนามิกจากปุ่มออกจากระบบบริการ Google ปุ่มใดปุ่มหนึ่งจากนั้นเรียกใช้โดยใช้ องค์ประกอบ img หรือแท็กสคริปต์:
<script type="text/javascript"
src="https://mail.google.com/mail/u/0/?logout&hl=en" />
หรือ
<img src="https://mail.google.com/mail/u/0/?logout&hl=en" />
หรือ
window.location = "https://mail.google.com/mail/u/0/?logout&hl=en";
หากคุณเปลี่ยนเส้นทางผู้ใช้ของคุณไปยังหน้าออกจากระบบหรือเรียกใช้จากองค์ประกอบที่ไม่ จำกัด การข้ามโดเมนผู้ใช้จะออกจากระบบ Google
โปรดทราบว่านี่ไม่ได้หมายความว่าผู้ใช้จะออกจากระบบแอปพลิเคชันของคุณแต่เป็น Google เท่านั้น :)
สรุป:
สิ่งสำคัญที่คุณควรทราบก็คือเมื่อคุณออกจากระบบแอปคุณไม่จำเป็นต้องให้ผู้ใช้ป้อนรหัสผ่านซ้ำ นั่นคือจุดรวม! ตรวจสอบสิทธิ์กับ Google ดังนั้นผู้ใช้จึงไม่จำเป็นต้องป้อนรหัสผ่านซ้ำแล้วซ้ำเล่าในแต่ละแอปพลิเคชันบนเว็บที่ตนใช้ ต้องใช้เวลาในการทำความคุ้นเคย แต่ทราบว่าตราบใดที่ผู้ใช้ลงชื่อเข้าใช้ Google แอปของคุณก็ไม่จำเป็นต้องกังวลว่าผู้ใช้จะเป็นคนที่เขาพูดหรือไม่
ฉันมีการใช้งานในโปรเจ็กต์เช่นเดียวกับคุณโดยใช้ข้อมูลโปรไฟล์ Google กับ OAuth ฉันได้ลองสิ่งเดียวกับที่คุณต้องการลองและมันเริ่มทำให้คนอื่นโกรธเมื่อต้องลงชื่อเข้าใช้ Google ซ้ำแล้วซ้ำเล่าดังนั้นเราจึงหยุดนำพวกเขาออกจาก Google :)