อยากทราบว่านอกจากการรวมโปรเจคแล้ว สามารถใช้วิธี SSO ได้หรือไม่ บางครั้งก็ไม่อยากเอาโปรเจคมารวมกัน แต่ก็ไม่อยากสร้าง user ใหม่บ่อยๆ และไม่อยากให้ Login ใหม่ตลอด ลักษณะคล้าย ระบบต่างๆ ของ Google ที่ Login ครั้งเดียวแล้วเข้าได้ทุกระบบ
กรกฎ วิริยะ 20 ก.ย. 2566 13:57
ได้ครับ โปรแกรมทุกตัวมี API ให้ใช้
1. เลือกเว็บใดเว็บหนึ่งที่มีสมาชิกมากที่สุดเป็นเว็บแม่ เข้าไปตั้งค่า API สังเกตว่า ต้องเป็น URL ของเว็บตัวเอง แล้วกด Save
2. นำข้อมูลทั้งหมดในหน้า API ไปกำหนดให้เว็บลูกทุกเว็บที่ต้องการ
เมื่อมีการเข้าระบบ จะมีการตรวจสอบการเข้าระบบที่เว็บตัวเองก่อน ถ้าไม่สามารถเข้าได้จะถูกส่งไปตรวจสอบที่ API อีกที
หมายเหตุ การใช้งาน API จะมีแค่ข้อมูลส่วนตัวเท่านั้น ไม่สามารถดีงสิทธิมาได้ เพราะแต่ละเว็บมีสิทธิไม่เท่ากัน เมื่อเข้าระบบได้แล้ว แอดมินจะต้องมาให้สิทธิด้วยตัวเอง
สุทธนิต ชัยขุนพล 20 ก.ย. 2566 14:11
หน้าจอนี้ใช่ไหมครับ
กรณีของผม เป็น server ภายในเรียกใช้งานผ่าน IP ตามที่หมายเหตุไว้ ก็ไม่ต้องระบุอะไรก็ได้ใช่ไหมครับ
ในส่วน Api Url , Token, Secret ให้เอาจาระบบหลักไป save ในระบบอื่นๆ ผมเข้าใจถูกต้องไหมครับ
กรกฎ วิริยะ 20 ก.ย. 2566 15:59
API URL ต้องเป็นของเว็บหลัก
White List ใส่ 0.0.0.0
อื่นๆใช้ค่าที่ระบบแสดงได้เลย
แล้วก๊อปค่าทั้งหมดไปใส่ยังเว็บลูก ให้เป็นค่าเดียวกัน
สุทธนิต ชัยขุนพล 20 ก.ย. 2566 16:38
Quotations by หมายเหตุ #3API URL ต้องเป็นของเว็บหลัก
White List ใส่ 0.0.0.0
อื่นๆใช้ค่าที่ระบบแสดงได้เลย
แล้วก๊อปค่าทั้งหมดไปใส่ยังเว็บลูก ให้เป็นค่าเดียวกัน



ขอบคุณครับ
สุทธนิต ชัยขุนพล 21 ก.ย. 2566 13:18
ทดลองแล้วไม่ได้ครับ ผมกำหนดค่าอะไรผิดรึป่าว
สุทธนิต ชัยขุนพล 22 ก.ย. 2566 16:30
ผมลองใช้ postman ทดสอบ มันขึ้นแบบนี้ครับ

{
"code": 401,
"message": "Invalid token"
}
กรกฎ วิริยะ 22 ก.ย. 2566 20:49
ทดสอบ ขาด token
White List ใส่ 0.0.0.0 หรือ IP ที่เชื่อมต่อด้วย หรือ ใส่ IP ของฝั่งตรงข้าม
สุทธนิต ชัยขุนพล 26 ก.ย. 2566 10:35
ก็ยังไม่ผ่านครับ
{
"code": 403,
"message": "Invalid sign"
}
กรกฎ วิริยะ 26 ก.ย. 2566 12:51
ทำผิดที่ทดสอบด้วย postman นี่แหละ แนะนำให้ทำผ่านเว็บครับ (เป็นการรักษาความปลอดภัยของ API ครับ)
สุทธนิต ชัยขุนพล 26 ก.ย. 2566 15:15
พอลองแก้ไม่ตรวจสอบ ค่านี้ ApiController::validateSign ปรากฏว่า postman ดึงข้อมูลมาถูกต้องครับ ลองไล่ๆตรวจสอบดู เหมือนกับว่าค่าของ $sign มันไม่ตรงกับ \Kotchasan\Password::generateSign($params, self::$cfg->api_secret) เพราะว่า $params['sign'] เป็นค่าว่าง
กรกฎ วิริยะ 01 ต.ค. 2566 22:32
ใช่ครับ ฟังก์ชั่นมันตรวจสอบ sign ซึ่งทั่วๆไปถ้าใช้ผ่านระบบมันจะมีค่านี้แนบมาด้วย (ระบบสร้างให้) พอมาใช้ postman ก็อาจจะไม่ได้ส่งมา มันเลย error
sign มันใช้เพื่อยืนยันว่า ค่าที่ส่งมาไม่ได้ถูกแก้ไขครับกลางทางครับ (จะละเว้นก็ได้ ถ้าไม่ได้ซีเรียสมากนัก)

โพสต์ตอบกลับ

กรุณาตรวจสอบให้ถูกต้องก่อนส่ง สามารถใช้ BBCode ได้
ประเภท jpg, jpeg, png, webp อัปโหลดรูปภาพหรือไม่ก็ได้