add initial support for api endpoint basic auth, updated dependencies
[squeep-authentication-module] / lib / authenticator.js
index 15089a020f5a977f09239537e210c40c6ca61173..efa3d844e7502cd024c6c99da830342dfe04954f 100644 (file)
@@ -335,6 +335,26 @@ class Authenticator {
     return this.sessionCheck(req, res, ctx, undefined, false);
   }
 
+
+  /**
+   * Require auth for an API endpoint.
+   * Check for valid local identifier in session, or Authentication header.
+   * Prompts for Basic auth if not valid.
+   * @param {http.ClientRequest} req
+   * @param {http.ServerResponse} res
+   * @param {Object} ctx
+   * @param {Boolean} sessionAlsoValid
+   */
+  async apiRequiredLocal(req, res, ctx, sessionAlsoValid = true) {
+    const validSession = sessionAlsoValid && this.sessionCheck(req, res, ctx, undefined, false, false);
+    const authorizationHeader = req.getHeader(Enum.Header.Authorization);
+    const validAuthorization = authorizationHeader && this.isValidAuthorization(authorizationHeader, ctx);
+    if (validSession || validAuthorization) {
+      return true;
+    }
+    this.requestBasic(res);
+  }
+
 }
 
 module.exports = Authenticator;
\ No newline at end of file