A lightweight wrapper package around Steam's Authentication API, which supports promises :)
- Express @ 4.x
Install the package by typing npm i node-steam-openid
in your project folder.
const SteamAuth = require("node-steam-openid");
const steam = new SteamAuth({
realm: "http://localhost:5000", // Site name displayed to users on logon
returnUrl: "http://localhost:5000/auth/steam/authenticate", // Your return route
apiKey: "XXXXXXXXXXXXXXXXXXXXXXXXXX" // Steam API key
});
app.get("/auth/steam", async (req, res) => {
const redirectUrl = await steam.getRedirectUrl();
return res.redirect(redirectUrl);
});
app.get("/auth/steam/authenticate", async (req, res) => {
try {
const user = await steam.authenticate(req);
//...do something with the data
} catch (error) {
console.error(error);
}
});
Gets the redirect URL to Steam.
None
- Promise (String)
steam.getRedirectUrl().then(url => {
//...do something with the url
});
Authenticates the user with oAuth.
- request (ExpressJsRequest, Object)
- Promise (UserObject)
steam.authenticate(req).then(user => {
//...do something with the user
});
Object which holds all the authenticated user's data. The key _json
holds the raw response from Steam API.
{
_json: { ... },
steamid: "12345678912345678",
username: "Example Username",
name: "Example Name",
profile: "https://steamcommunity.com/id/Example",
avatar: {
small: "...",
medium: "...",
large: "..."
}
}
See CONTRIBUTING.md for contributing guidelines.
See SECURITY.md for security practices.
- Add the ability to pass custom variables to Steam (query parameters)
- Add support for Node.js native HTTP <http.IncomingMessage> class.
MIT <3