リクエストの認可
ログインの有無による認可は options.preMiddleware で行う。
preMiddleware: function (req, res, next) {
  if (req.isLoggedIn()) {
    next()
  } else {
    res.status(403).end()
    // Or `next(new Error('hoge hoge'))`
  }
}
フィールド単位のアクセス制御
ログインの有無やロールに応じて、一部のフィールドをレスポンスから除外することもできる。
// Server
restify.serve(router, mongoose.model('Hoge', new mongoose.schema({
  name: String,
  zip: String,
  city: String
})), {
  access: function (req) {
    return req.isLoggedIn() ? 'protected' : 'public';
  },
  protected: ['zip', 'city']
});
// Client(未ログイン時)
$http.get('/api/v1/Hoge').then(res => {
  console.log(res.data)
})
# -> [{ name: 'fuga' }, { name: 'pico' }...]
# zip/city は protected なのでレスポンスに含まれない
全てのフィールドを protected や private に指定し除外しても、空のオブジェクトが返却される。
// Server
restify.serve(router, mongoose.model('Fuga', new mongoose.schema({
  nyaa: String,
  nyannya: String
})), {
  access: function (req) {
    return req.isLoggedIn() ? 'protected' : 'public';
  },
  protected: ['nyaa', 'nyannya', '_id', '__v']
});
// Client(未ログイン時)
$http.get('/api/v1/Fuga').then(res => {
  console.log(res.data)
})
# -> [{}, {}, {}, {}...]