訂閱與發佈時的驗證
這是一個滿重要的應用,想像一個場景,在聊天室裡,每個人有自己的channel id,如果沒有經過身份驗證,任何一個人都可以訂閱別人的channel,代表大家的聊天訊息會被監聽,或是沒有經過驗證,就可以隨意發送訊息給任意的人,這都是很危險的情況。
在Nchan裡它提供了nchan_authorize_request
的設定,這不管是訂閱的路徑還是發佈的路徑都可以使用。
在這個官方提供的範例裡,可以看到定義了一個pubsub的路徑,並且對這路徑做訂閱與發佈的同時,會去/auth
做驗證,/auth
這個路徑則會把這個請求反向代理到另一個後端伺服器myapp
的/pubsub_authorize
路徑下做驗證,這會連同原本的header與cookie都一起帶過去,所以可以在後端伺服器使用session、cookie跟nchan所提供的變數一起驗證是否允許這個請求,如果允許,只需要讓http status code是2xx即可,其他的status code,nchan都會將後端所傳回的資訊一併帶回給client,並終止原本的請求。
Last updated