หลังจากติดตั้ง CakePHP เรียบร้อยแล้ว. นอกจากนั้นเพื่อให้การทดลองเป็นได้โดยสะดวกผมคิดว่าควรจะสร้าง view กับ controller ง่ายๆ ไว้ใช้ในทดลองก่อน. จากนั้นก็สร้าง user table ผ่านทาง CakeSchema. แล้วก็เตรียม model ของ users table พร้อมด้วย add user เข้าไปลองก่อนสัก user. ขั้นตอนต่อไปก็แก้ AppController ที่อยู่ใน cake/libs/controller/app_controller.php นิดหน่อย พอแก้แล้วหน้าตาก็จะเป็นแบบด้านล่าง:
< ?php
/* มี comment ต่างๆ นานา */
class AppController extends Controller {
var $components = array('Auth', 'Acl');
}
?>
ทีนี้ก็ลองเข้าเปิดเว็บดูหน้า http://localhost/my_project/books/display1 ถ้า app ของเราทำงานถูกต้องหน้าเว็บจะถูก redirect ไปที่ http://localhost/my_project/users/login แบบข้างล่าง
แล้วก็กรอก username: myusername และ password: mypassword (ตามที่ add ไปก่อนหน้านี้ในการเตรียม model ของ users table พร้อมด้วย add user เข้าไปลองก่อนสัก user. ) แล้วก็กด “submit” ถ้าเข้าได้ปกติมันก็ redirect มาที่ books/display1 ตามที่เข้าไว้ตอนแรก.
ถ้ามี warning ว่าเขียน app/tmp ไม่ได้ขึ้นมาแบบในตัวอย่างผมก็แก้ permission เอา โดยใช้คำสั่ง chmod -R 777 app/tmp ทำให้ทุก user เขียนได้ … อาจจะมีใช่วิธีแก้ปัญหาที่ดีแต่มันก็ทำ warning หายไป :-P.
เวลาจะ logout ก็แค่เข้าไปที่ http://localhost/my_project/users/logout
ก็เป็นอันว่าเว็บที่สร้างขึ้นมามีระบบ login แล้ว แต่ก็แยกได้แค่ว่า login หรือไม่ login. ใคร login ก็ดูได้ทุกหน้า ไม่ login ก็ดูอะไรไม่ได้. การจะทำอะไรซับซ้อนกว่านี้ใช้ Access control list (ACL) ช่วยได้.



[...] cake, cakephp, howto, php, thai, tutorial, web หลังจากที่ลองใช้ AuthComponent อย่างง่ายไปแล้ว. ผมก็อยากจะลอง ACL (Access control list) บ้าง [...]
Pingback โดย CakePHP 1.2.x: Action-based ACL « वीर — 24 เมษายน 2008 @ 05:28
ผมทำตามแล้วไม่เห็นมัน login ให้เลยอ่ะครับ login เสร็จก็ยังวิ่งเข้าหน้า login เหมือนเดิม $session->flash(’auth’) ก็ไม่โชว์อะไร
ผมใช้ cake 1.2 rc1 ครับ
แต่ผมไปเจอเว็บนี้เข้า http://www.webdevelopment2.com/cakephp-auth-component-tutorial-1/ ดูแล้วยุ่งยากกว่าในเว็บของคุณveer และยากกว่าในเว็บ cakephp เยอะเลยครับ
เลยอยากรู้ว่าคุณveer ใช้ cake version ครับ
ความเห็น โดย taohooattack — 1 กันยายน 2008 @ 10:58
ผมใช้ trunk ครับ ยังไงเดี๋ยวผมลอง 1.2rc1 ดูอีกทีครับ
ความเห็น โดย वीर — 2 กันยายน 2008 @ 08:15
ผมพอจะเดาออกแล้วครับ น่าจะเป็นเพราะ layout พยายามจะโหลด css มา มันก็เลยเกิดไปเรียก auth อีกครั้งนึง ซ้อนๆกันไปเรื่อยๆ
แต่ยังหาวิธีแก้ไม่ได้ครับ
ความเห็น โดย taohooattack — 2 กันยายน 2008 @ 10:50
ไฟล์ css ไม่น่าจะถูกตรวจสอบโดย auth นะครับ ปกติจะมีการตรวจสอบ auth เฉพาะ controller’s action อย่างเช่น /posts/edit/1 แต่ถ้าไฟล์อยู่ใน /css เคยลองแล้วจะไม่มีการตรวจสอบการ login อะไรเลยครับ
อาจจะเป็นเพราะว่าสร้าง form login ใน controller อื่นไม่ใช่ controller users ก็ได้ครับ
แต่ก็ไม่แน่ใจเพราะไม่เคยสร้าง form login ใน controller อื่นครับ
ความเห็น โดย num — 4 กุมภาพันธ์ 2009 @ 00:33