Adonis.js Versi 4.x
Jadi masalahnya adalah saya tidak dapat menambahkan header Otorisasi di sisi klien untuk menggunakan middleware Adonis/Middleware/Auth
untuk mengautentikasi Token JWT saya.
Jadi yang saya lakukan adalah membuat middleware pelanggan untuk mengotorisasi koneksi soket, sekarang saya bisa mendapatkan token yang saya lewati. Jadi sekarang bagaimana cara memeriksa apakah token itu valid? Saya belum melihat dokumentasi yang bagus tentang bagian ini, terima kasih sebelumnya atas bantuannya!
Sisi Klien
import Ws from '@adonisjs/websocket-client'
const ws = Ws('ws://0.0.0.0:3001', {
path: 'adonis-ws'
})
const jwtToken = cookie.get('auth._token.local')
ws
.withJwtToken(jwtToken)
.connect()
Sisi Server
// start/socket.js
const Ws = use('Ws')
Ws.channel('order', 'OrderController').middleware(['socketAuth'])
// start/wsKernel.js
const Ws = use('Ws')
const namedMiddleware = {
socketAuth: 'App/Middleware/SocketAuthentication'
}
Ws
.registerGlobal(globalMiddleware)
.registerNamed(namedMiddleware)
// app/Middleware/SocketAuthentication.js
class SocketAuthentication {
async wsHandle ({ request, auth }, next) {
try {
const { token } = request.all()
// Authenticate the error in this part :(
await next()
} catch (error) {
console.log(error)
}
}
}
module.exports = SocketAuthentication