1.4.1 • Published 10 years ago

stash-auth v1.4.1

Weekly downloads
2
License
MIT
Repository
github
Last release
10 years ago

Stash Auth

Middleware helper to authorize with Stash (via OAuth) and easily access Stash's REST APIs

Install

npm i stash-auth --save

Use

var StashAuth = require("stash-auth");

var stash = new StashAuth(
	STASH_API_URL, // e.g. http://localhost:7990/stash
	STASH_CONSUMER_KEY, // can be anything, as long as it's the same as in Stash
	PRIVATE_KEY_DATA, // fs.readFileSync("server.key", "utf8")
	STASH_CALLBACK_FULL_URL // full, remote-accessable url (including protocol, host and path) to the auth callback route on this server
);

app.use("/stash/auth-callback", stash.authCallback);

The stash.auth middleware will authorize with Stash before redirecting back to the original URL (through the auth callback route) If a user is already authorized, it invokes the next middleware, where you have access to req.stash

app.use("/commits/:project/:repo/", stash.auth, function (req, res, next) {
	var project = req.params.project;
	var repo = req.params.repo;
	var api_url = "api/1.0/projects/" + project + "/repos/" + repo + "/commits";
	req.stash.get(api_url, function (err, data) {
		if (err) {
			next(err);
		} else {
			res.send(data);
		}
	});
});

There are methods on req.stash corresponding to HTTP methods supported by 1j01/node-oauth: get, post, put and delete.

Each method takes the following parameters:

  • url: String, under STASH_API_URL/rest/
  • params: optional Object, adds parameters to the query string of the URL
  • callback: function(err, data){ ... } where data is the parsed JSON

You can pass parameters through the url, or with params, or you can mix the two, e.g. req.stash.get("api/1.0/quux?foo=1", {bar: 2})

Additionally there is a getAll method, which will try to fetch every item from every page in a paged API. This method isn't particularly recommended, as it circumvents not just the pagination, but the purpose of the pagination.

1.4.1

10 years ago

1.4.0

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago