Authorization
So far, the catalog data service uses basic authentication to protect its routes from unknown users; however, a catalog application should allow only few white-listed users to modify the items inside the catalog. To restrict access to the catalog, we will introduce the concept of authorization, that is, a subset of authenticated users, with appropriate permission allowed.
When Passport's done()
function is invoked to authenticate a successful login, it takes as an argument a user
instance of the user that has been granted authentication. The done()
function adds that user model instance to the request
object, and, in this way, provides access to it via the request.user
property, after successful authentication. We will make use of that property to implement a function performing the authorization check after successful authentication:
function authorize(user, response) { if ((user == null) || (user.role != 'Admin')) { response.writeHead(403, { 'Content-Type' : 'text...