ลงทะเบียนแอปของคุณ
แอปที่ให้ผู้คนเข้าสู่ระบบด้วย Hivesigner ก็คือบัญชี Hive หนึ่งบัญชี ชื่อของบัญชีนั้นคือ client_id ที่คุณส่ง โปรไฟล์ของบัญชีเก็บการตั้งค่าที่ Hivesigner อ่าน ได้แก่ callback ที่ส่งโทเค็นไปได้ และไคลเอ็นต์ซีเคร็ตสำหรับโฟลว์แบบโค้ด หากต้องการกระจายธุรกรรมผ่าน API บัญชีแอปยังต้องให้สิทธิ์ posting แก่ @hivesigner ด้วย หน้านี้พาไปทีละขั้น
สิ่งที่คุณต้องมี
| คุณต้องการ | บัญชีแอปและ callback | ไคลเอ็นต์ซีเคร็ต | การให้สิทธิ์แก่ @hivesigner |
|---|---|---|---|
| ให้ผู้คนเข้าสู่ระบบและกระจายด้วยโฟลว์แบบโทเค็น | ใช่ | ไม่ | ใช่ |
| ให้ผู้คนเข้าสู่ระบบและกระจายด้วยโฟลว์แบบโค้ด (โทเค็นรีเฟรช) | ใช่ | ใช่ | ใช่ |
| ให้เข้าสู่ระบบอย่างเดียว ด้วยโทเค็นที่ระบุแอปของคุณ | ใช่ | ไม่ | ไม่ |
| ให้เข้าสู่ระบบอย่างเดียว จากเว็บไซต์ที่ไม่มีบัญชี Hive | ไม่ | ไม่ | ไม่ |
| ส่งลิงก์ลงนาม | ไม่ | ไม่ | ไม่ |
สองแถวสุดท้าย ดู เข้าสู่ระบบโดยไม่มีสิทธิ์ posting และ ลิงก์ลงนาม
สร้างบัญชีแอป
- สร้างบัญชี Hive สำหรับแอปของคุณ เช่นที่ https://ecency.com/signup ใช้บัญชีแยกต่างหากสำหรับแอป ไม่ใช่บัญชีส่วนตัวของคุณ ชื่อของบัญชีนั้นคือ
client_idของคุณ ผู้ใช้เห็นชื่อนี้บนหน้าจอยินยอมข้าง «บัญชี Hive» บัญชี Hive เปลี่ยนชื่อไม่ได้ จึงควรเลือกชื่ออย่างรอบคอบ - เพิ่มบัญชีนั้นลงใน Hivesigner ที่ https://hivesigner.com/import (เพิ่มบัญชี) ใช้คีย์ active หรือรหัสผ่านหลัก เพราะการให้สิทธิ์ที่อยู่ด้านล่างต้องใช้คีย์ active
กรอกการตั้งค่าของแอป
เปิด https://hivesigner.com/profile โดยเลือกบัญชีแอปไว้ แล้วตั้งค่า
- บัญชีนี้เป็นแอป เปิดใช้งาน สิ่งนี้ทำให้บัญชีถูกทำเครื่องหมายว่าเป็นแอป ซึ่งเป็นสิ่งที่ API ตรวจก่อนจะรับโค้ดหรือโทเค็นรีเฟรชสำหรับบัญชีนั้น
- URI สำหรับเปลี่ยนเส้นทาง callback ของคุณ บรรทัดละหนึ่งรายการ ดู callback
- ผู้สร้าง ใครเป็นผู้ดูแลแอป ไดเรกทอรีแอปที่ https://hivesigner.com/apps แสดงข้อมูลนี้
- สถานะ ใช้งานจริงหรือทดสอบ สำหรับบันทึกของคุณเอง Hivesigner ปฏิบัติต่อทั้งสองแบบเหมือนกัน
- ไคลเอ็นต์ซีเคร็ต จำเป็นเฉพาะกับ โฟลว์แบบโค้ด ดู ไคลเอ็นต์ซีเคร็ต
กรอก ชื่อ และ URL รูปโปรไฟล์ ด้วย หน้าจอยินยอมแสดงรูปและชื่อของแอปคุณ ส่วนไดเรกทอรีแอปที่ https://hivesigner.com/apps แสดงชื่อ เกี่ยวกับ และ เว็บไซต์
การบันทึกจะปรับโปรไฟล์ของบัญชีบนเชน และต้องใช้คีย์ posting ของบัญชีนั้น Hivesigner อ่าน callback ของคุณจากบัญชีเมื่อคำขอเข้าสู่ระบบเปิดขึ้น การเปลี่ยนแปลงจึงมีผลทันทีที่ธุรกรรมเข้าบล็อก
หมายเหตุ: ชื่อ รูป และคำอธิบาย ถูกเผยแพร่โดยบัญชีแอปของคุณเอง หน้าจอยินยอมจึงแสดงชื่อบัญชีจริง (
@myapp) และโฮสต์ที่จะพาผู้ใช้ไปด้วย เพราะสองสิ่งนี้คือสิ่งที่การให้สิทธิ์และการเปลี่ยนเส้นทางใช้จริง
ที่อยู่ callback
callback (คือ redirect_uri ในคำขอเข้าสู่ระบบ) คือที่ที่ Hivesigner ส่งผู้ใช้กลับไปพร้อมโทเค็นหรือโค้ด Hivesigner ส่งไปยัง callback ที่อยู่ในรายการของบัญชีแอปคุณเท่านั้น
กฎ
- ตรงกันทุกตัวอักษร
redirect_uriในคำขอต้องเป็นหนึ่งใน URI สำหรับเปลี่ยนเส้นทางของคุณ ตรงกันทุกตัวอักษร ทั้งสกีม โฮสต์ พอร์ต พาธ และสตริงคำค้น - https เท่านั้น callback ต้องใช้
https://ส่วนhttp://ธรรมดารับเฉพาะบนลูปแบ็ก คือlocalhost,127.0.0.1หรือ[::1] - พอร์ตลูปแบ็กเปลี่ยนได้ callback ลูปแบ็กที่ลงทะเบียนด้วย http ธรรมดาจะตรงกับโฮสต์และพอร์ตลูปแบ็กใดก็ได้ที่มีพาธ สตริงคำค้น แฟรกเมนต์ และข้อมูลผู้ใช้เหมือนกัน ส่วน callback ลูปแบ็กที่ลงทะเบียนด้วย
https://ยังต้องตรงกันทุกตัวอักษร - ห้ามใช้สกีมของตัวเอง callback อย่าง
myapp://callbackจะถูกปฏิเสธ ดู แอปมือถือและเดสก์ท็อป - ห้ามมีแฟรกเมนต์ อย่าเติม
#fragmentต่อท้าย callback
หน้าโปรไฟล์จะไม่ยอมบันทึก callback ที่ไม่มีทางใช้งานได้ โดยขึ้นว่า «callback ที่ใช้ไม่ได้ (ต้องเป็น https หรือ http บน localhost)»
ตัวอย่าง
เมื่อลงทะเบียน URI สำหรับเปลี่ยนเส้นทางเหล่านี้ไว้
https://myapp.example/auth/callback
http://localhost:3000/auth
redirect_uri ในคำขอ |
ผลลัพธ์ |
|---|---|
https://myapp.example/auth/callback |
รับ: ตรงกันทุกตัวอักษร |
https://myapp.example/auth/callback/ |
ปฏิเสธ: มี / เกิน |
https://myapp.example/auth/callback?next=home |
ปฏิเสธ: สตริงคำค้นต่างกัน |
https://www.myapp.example/auth/callback |
ปฏิเสธ: คนละโฮสต์ |
http://myapp.example/auth/callback |
ปฏิเสธ: http ธรรมดานอกลูปแบ็ก |
http://localhost:3000/auth |
รับ: ตรงกันทุกตัวอักษร |
http://127.0.0.1:51234/auth |
รับ: ลูปแบ็ก พาธเดียวกัน คนละพอร์ต |
http://[::1]:3000/auth |
รับ: ลูปแบ็ก พาธเดียวกัน |
http://127.0.0.1:3000/other |
ปฏิเสธ: คนละพาธ |
https://localhost:3000/auth |
ปฏิเสธ: https ไม่ตรงกับการลงทะเบียนแบบ http ธรรมดา |
myapp://auth |
ปฏิเสธ: สกีมของตัวเอง |
หากต้องการรับสตริงคำค้นบน callback ของคุณ ให้ลงทะเบียน callback พร้อมสตริงคำค้นนั้นตรง ๆ Hivesigner จะคงสตริงคำค้นเดิมของคุณไว้แล้วเติมพารามิเตอร์ของตนต่อท้าย
แอปมือถือและเดสก์ท็อป
Hivesigner ใส่โทเค็นไว้ใน URL ของ callback สกีมของตัวเองอย่าง myapp:// ไม่ได้ผูกกับแอปใดแอปหนึ่ง แอปอื่นบนอุปกรณ์เดียวกันอ้างสิทธิ์และรับโทเค็นไปได้ Hivesigner จึงปฏิเสธสกีมของตัวเอง และส่งโทเค็นไปยังที่อยู่ https หรือลูปแบ็กบนอุปกรณ์ของผู้ใช้เองเท่านั้น
แอปเนทีฟใช้วิธีใดวิธีหนึ่งต่อไปนี้แทน
- ลิงก์ https ที่เป็นของแอปเอง ลงทะเบียน callback บนโดเมนของคุณที่ระบบปฏิบัติการจะเปิดในแอปของคุณ (App Links บน Android หรือ Universal Links บน iOS)
- callback แบบลูปแบ็ก แอปรอรับการเปลี่ยนเส้นทางที่
127.0.0.1ลงทะเบียนhttp://127.0.0.1/auth(หรือlocalhost) แล้วใช้พอร์ตว่างใดก็ได้ตอนรัน พอร์ตไม่จำเป็นต้องตรงกัน
ไคลเอ็นต์ซีเคร็ต
ไคลเอ็นต์ซีเคร็ตพิสูจน์ว่าการแลกโค้ดมาจากเซิร์ฟเวอร์ของคุณ จำเป็นสำหรับ โฟลว์แบบโค้ด เซิร์ฟเวอร์ของคุณส่งค่านี้ไปพร้อมโค้ดหรือโทเค็นรีเฟรชทุกครั้งที่ /api/oauth2/token ส่วนโฟลว์แบบโทเค็นไม่ใช้
- สร้างค่าสุ่มที่ยาว เช่นด้วย
openssl rand -hex 32 - ตั้งค่าบนหน้าโปรไฟล์ Hivesigner เก็บเพียงค่าแฮช sha256 ของมันไว้ในโปรไฟล์บัญชีแอปของคุณ หากเว้นช่องว่างไว้ ซีเคร็ตเดิมจะยังคงอยู่
- เก็บไว้บนเซิร์ฟเวอร์ของคุณ อย่านำไปใส่ในหน้าเว็บ แอปมือถือ หรือ URL เด็ดขาด
- หากต้องการเปลี่ยน ให้ตั้งค่าใหม่และอัปเดตเซิร์ฟเวอร์ของคุณในเวลาเดียวกัน
ให้สิทธิ์ posting แก่ @hivesigner
API กระจายธุรกรรมด้วยคีย์ posting ของบัญชี @hivesigner Hive จะยอมรับลายเซ็นนั้นสำหรับผู้ใช้ของคุณก็ต่อเมื่อบัญชีแอปของคุณได้เพิ่ม @hivesigner เข้าไปในสิทธิ์ posting ของตนแล้ว ดู สายของสิทธิ์ posting
- เลือกบัญชีแอปของคุณใน Hivesigner
- เปิด https://hivesigner.com/authorize/hivesigner
- หน้าจอแสดงว่า «อนุญาต @hivesigner» และ «@hivesigner จะสามารถโพสต์ แสดงความคิดเห็น โหวต และติดตามในนาม @myapp ได้» เลือก อนุญาต ขั้นตอนนี้ต้องใช้คีย์ active ของบัญชีแอป
คุณทำสิ่งนี้ครั้งเดียว หากไม่ทำ การกระจายธุรกรรมทุกครั้งจะล้มเหลวด้วย unauthorized_client และข้อความ «Broadcaster account doesn't have permission to broadcast for @myapp» แอปที่ให้เข้าสู่ระบบอย่างเดียวไม่ต้องทำขั้นนี้
การให้สิทธิ์นี้ยังทำให้ @hivesigner โพสต์ในนามบัญชีแอปของคุณเองได้ด้วย ซึ่งเป็นอีกเหตุผลที่ควรใช้บัญชีแอปกับแอปเท่านั้น
แอปที่กระจายธุรกรรมผ่าน Hivesigner โดยมีการให้สิทธิ์นี้ อาจปรากฏในไดเรกทอรีแอปที่ https://hivesigner.com/apps โดยเรียงตามจำนวนผู้ใช้
ผู้ใช้เห็นอะไรเมื่อมีบางอย่างผิดพลาด
Hivesigner ปฏิเสธคำขอที่ไม่อาจตอบได้อย่างปลอดภัย โดยแสดงข้อความและปุ่ม รายงานปัญหานี้ คำขอนั้นอนุมัติไม่ได้ และไม่มีอะไรถูกส่งไปยัง callback ของคุณ
| ปัญหา | สิ่งที่ผู้ใช้อ่าน |
|---|---|
redirect_uri ไม่ใช่ URI สำหรับเปลี่ยนเส้นทางของคุณ |
«URL สำหรับเปลี่ยนเส้นทางของแอปนี้ไม่ได้ลงทะเบียนไว้ การเข้าสู่ระบบจึงถูกบล็อกเพื่อความปลอดภัยของคุณ» |
client_id ไม่ใช่บัญชี Hive |
«@myapp ไม่ใช่บัญชี Hive จึงไม่มีแอปให้อนุญาต โปรดกลับไปที่เว็บไซต์แล้วลองอีกครั้ง» |
| บัญชีไม่ได้ทำเครื่องหมายว่าเป็นแอป | «@myapp ไม่ได้ตั้งค่าเป็นแอป จึงไม่สามารถลงชื่อเข้าใช้ให้คุณได้ กลับไปที่เว็บไซต์แล้วลองใหม่อีกครั้ง» ให้เปิด บัญชีนี้เป็นแอป ตามที่อธิบายข้างต้น |
คำขอไม่มี redirect_uri |
«คำขออนุญาตนี้ไม่สมบูรณ์: ไม่ได้ระบุแอปหรือ URL สำหรับเปลี่ยนเส้นทาง โปรดกลับไปที่แอปแล้วลองอีกครั้ง» |
ถ้าผู้ใช้แจ้งกรณีใดกรณีหนึ่งเหล่านี้ ให้เทียบ redirect_uri ที่แอปของคุณส่งกับ URI สำหรับเปลี่ยนเส้นทางของคุณทีละตัวอักษร
รายการตรวจสอบ
- มีบัญชี Hive สำหรับแอป เพิ่มเข้า Hivesigner ด้วยคีย์ active ของบัญชีนั้น
- ที่ https://hivesigner.com/profile: เปิด «บัญชีนี้เป็นแอป» ใส่ URI สำหรับเปลี่ยนเส้นทางไว้ และตั้งไคลเอ็นต์ซีเคร็ตถ้าใช้โฟลว์แบบโค้ด
- อนุญาต @hivesigner ที่ https://hivesigner.com/authorize/hivesigner ถ้าคุณกระจายธุรกรรมผ่าน API
- มีลิงก์เข้าสู่ระบบที่ส่ง URI สำหรับเปลี่ยนเส้นทางของคุณมาอย่างตรงเป๊ะหนึ่งรายการ ดู เข้าสู่ระบบด้วย OAuth2