ลงทะเบียนแอปของคุณ

แอปที่ให้ผู้คนเข้าสู่ระบบด้วย Hivesigner ก็คือบัญชี Hive หนึ่งบัญชี ชื่อของบัญชีนั้นคือ client_id ที่คุณส่ง โปรไฟล์ของบัญชีเก็บการตั้งค่าที่ Hivesigner อ่าน ได้แก่ callback ที่ส่งโทเค็นไปได้ และไคลเอ็นต์ซีเคร็ตสำหรับโฟลว์แบบโค้ด หากต้องการกระจายธุรกรรมผ่าน API บัญชีแอปยังต้องให้สิทธิ์ posting แก่ @hivesigner ด้วย หน้านี้พาไปทีละขั้น

สิ่งที่คุณต้องมี

คุณต้องการ บัญชีแอปและ callback ไคลเอ็นต์ซีเคร็ต การให้สิทธิ์แก่ @hivesigner
ให้ผู้คนเข้าสู่ระบบและกระจายด้วยโฟลว์แบบโทเค็น ใช่ ไม่ ใช่
ให้ผู้คนเข้าสู่ระบบและกระจายด้วยโฟลว์แบบโค้ด (โทเค็นรีเฟรช) ใช่ ใช่ ใช่
ให้เข้าสู่ระบบอย่างเดียว ด้วยโทเค็นที่ระบุแอปของคุณ ใช่ ไม่ ไม่
ให้เข้าสู่ระบบอย่างเดียว จากเว็บไซต์ที่ไม่มีบัญชี Hive ไม่ ไม่ ไม่
ส่งลิงก์ลงนาม ไม่ ไม่ ไม่

สองแถวสุดท้าย ดู เข้าสู่ระบบโดยไม่มีสิทธิ์ posting และ ลิงก์ลงนาม

สร้างบัญชีแอป

  1. สร้างบัญชี Hive สำหรับแอปของคุณ เช่นที่ https://ecency.com/signup ใช้บัญชีแยกต่างหากสำหรับแอป ไม่ใช่บัญชีส่วนตัวของคุณ ชื่อของบัญชีนั้นคือ client_id ของคุณ ผู้ใช้เห็นชื่อนี้บนหน้าจอยินยอมข้าง «บัญชี Hive» บัญชี Hive เปลี่ยนชื่อไม่ได้ จึงควรเลือกชื่ออย่างรอบคอบ
  2. เพิ่มบัญชีนั้นลงใน 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

  1. เลือกบัญชีแอปของคุณใน Hivesigner
  2. เปิด https://hivesigner.com/authorize/hivesigner
  3. หน้าจอแสดงว่า «อนุญาต @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 สำหรับเปลี่ยนเส้นทางของคุณทีละตัวอักษร

รายการตรวจสอบ

  1. มีบัญชี Hive สำหรับแอป เพิ่มเข้า Hivesigner ด้วยคีย์ active ของบัญชีนั้น
  2. ที่ https://hivesigner.com/profile: เปิด «บัญชีนี้เป็นแอป» ใส่ URI สำหรับเปลี่ยนเส้นทางไว้ และตั้งไคลเอ็นต์ซีเคร็ตถ้าใช้โฟลว์แบบโค้ด
  3. อนุญาต @hivesigner ที่ https://hivesigner.com/authorize/hivesigner ถ้าคุณกระจายธุรกรรมผ่าน API
  4. มีลิงก์เข้าสู่ระบบที่ส่ง URI สำหรับเปลี่ยนเส้นทางของคุณมาอย่างตรงเป๊ะหนึ่งรายการ ดู เข้าสู่ระบบด้วย OAuth2