steam-weblogin

Provides an interface for sign into 3d-party sites using Steam OpenID

Usage no npm install needed!

<script type="module">
  import steamWeblogin from 'https://cdn.skypack.dev/steam-weblogin';
</script>

README

Steam WebLogin

💿 Installation

npm i steam-weblogin

📖 Usage

import Account from "steam-weblogin";
import SteamCommunity from "steamcommunity";

const community = new SteamCommunity();
community.login(
  {
    accountName: "login",
    password: "password",
    disableMobile: true
  },
  async (error, sessionID, cookies) => {
    if (!error) {
      const account = new Account(cookies);
      const {
        body,
        headers,
        request: { uri },
        cookies
      } = await account.login("https://www.csgo500.com/steam/preauth");
      console.log(uri, body, cookies, headers);
    }
  }
);

👥 Account

Properties

request

request: RequestAPI<any, any, any>
/* Example usage */
const response = await account.request.get("https://steamcommunity.com");

account.request = require("request-promise").defaults({
  proxy: "http://localhost:8888"
});

// the best way to change the defaults
account.request = account.request.defaults({
  proxy: "http://localhost:8888"
});

cookies

cookies: Cookies;
/* Example usage */
account.cookies.export();

account.cookies = new Cookies(jar);

Methods

constructor

new Account(cookies: Cookies | CookieArray)
  • cookies - logged in Steam cookies (sessionid, steamLoginSecure, ...), can be Cookies or CookieArray
/* Example usage */
import Account from "steam-weblogin";
const Account = require("steam-weblogin").default; // ES5 syntax

const account = new Account([
  "steamLoginSecure=value",
  "sessionid=value",
  "steamCountry=value"
]);

const account = new Account(cookies);

login

login(url: String, { clone: Boolean = true }): LoginResponse
/* Example usage */
const response = await account.login("https://www.csgo500.com/steam/preauth");

rejects with LoginError if passed cookies are bad

LoginResponse

interface LoginResponse {
  statusCode: Number;
  body: String;
  headers: Object;
  request: {
    uri: Url;
    method: String;
    headers: Object;
  };
  cookies: Object;
}
import { LoginResponse } from "steam-weblogin";

🍪 Cookies

Properties

jar

jar: CookieJar;
/* Example usage */
const str = cookies.jar.getCookieStringSync("https://steamcommunity.com");

cookies.jar = new CookieJar();

requestJar

readonly jar: request.CookieJar;
/* Example usage */
request.get("https://steamcommunity.com", { jar: cookies.requestJar });

Methods

constructor

new Cookies(cookies: CookieArray);
  • cookies - logged in Steam cookies (sessionid, steamLoginSecure, ...), can be Cookies or CookieArray
import { Cookies } from "steam-weblogin";

const cookies = new Cookies([
  "steamLoginSecure=value",
  "sessionid=value",
  "steamCountry=value"
]);

const cookies = new Cookies(jar);

export

export(): {key: String, value: String, domain: String, ...}[]

clone

clone(): Cookies

CookieArray

type CookieArray = CookieJar | (Cookie | String | Object)[];
import { CookieArray } from "steam-weblogin";

❌ LoginError

Properties

message

message: String = "Must be logged in";

Methods

constructor

new LoginError();
/* Example usage */
import { LoginError } from "steam-weblogin";

if (error instanceof LoginError) {
  // do something
}

📝 License

Released under MIT license

🦉 Alex Owl