การดำเนินการ Authentication (การตรวจสอบสิทธิ์และการรับรองตัวตน) ใน Koa.js มีหลายวิธี แต่วิธีที่แพร่หลายที่สุดคือใช้ middleware และไลบรารีที่ช่วยในการตรวจสอบและการรับรองตัวตนของผู้ใช้. นี่คือวิธีการสร้างระบบ Authentication ใน Koa.js โดยใช้ koa-passport
และ passport-local
:
ติดตั้งแพ็กเกจ
koa-passport
และpassport-local
:ใช้คำสั่ง npm เพื่อติดตั้ง
koa-passport
และpassport-local
:1
npm install koa-passport passport-local
หรือถ้าคุณใช้ Yarn:
1
yarn add koa-passport passport-local
กำหนด middleware
koa-passport
ในแอปพลิเคชัน Koa.js:ในแอปพลิเคชัน Koa.js ของคุณ, กำหนด middleware
koa-passport
เพื่อรับรองตัวตนผู้ใช้:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43const Koa = require('koa');
const passport = require('koa-passport');
const LocalStrategy = require('passport-local').Strategy;
const app = new Koa();
// กำหนดฟังก์ชันในการตรวจสอบตัวตน
passport.use(new LocalStrategy(
async (username, password, done) => {
// ตรวจสอบข้อมูลผู้ใช้ในฐานข้อมูล (สมมติ)
if (username === 'john' && password === 'password') {
// ส่งข้อมูลผู้ใช้ไปยังฟังก์ชัน done() หากต้องการรับรองตัวตน
return done(null, { id: 1, username: 'john' });
} else {
// ส่งข้อความผิดพลาดในกรณีที่ตรวจสอบล้มเหลว
return done(null, false, { message: 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง' });
}
}
));
// กำหนดการเริ่ม session
app.keys = ['your-secret-key'];
app.use(passport.initialize());
app.use(passport.session());
// ตัวอย่างการลงทะเบียน route สำหรับเข้าสู่ระบบ
app.use(async (ctx, next) => {
if (ctx.isAuthenticated()) {
ctx.body = `ยินดีต้อนรับ, ${ctx.state.user.username}!`;
} else {
ctx.body = 'โปรดเข้าสู่ระบบ';
}
});
// ตัวอย่าง route สำหรับการเข้าสู่ระบบ
app.use(async (ctx, next) => {
await ctx.login({ id: 1, username: 'john' });
ctx.redirect('/');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});เรียกใช้แอปพลิเคชัน:
เมื่อคุณรันแอปพลิเคชัน Koa.js และเข้าที่ http://localhost:3000, คุณจะเห็นข้อความ “โปรดเข้าสู่ระบบ.” เมื่อคุณเข้าสู่ระบบโดยใช้ชื่อผู้ใช้ “john” และรหัสผ่าน “password” ผ่าน route สำหรับการเข้าสู่ระบบ, คุณจะถูกเรียกไปยัง route ที่แสดงข้อความ “ยินดีต้อนรับ, john!”
การสร้างระบบ Authentication ใน Koa.js โดยใช้ koa-passport
และ passport-local
ช่วยให้คุณสามารถรับรองตัวตนของผู้ใช้ได้อย่างสะดวก และคุณสามารถปรับแต่งกฎการตรวจสอบตัวตนและการจัดการผู้ใช้ตามความต้องการของโปรเจกต์ของคุณ.