General OAuth support for electron App.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

drawing 1

Build Status Coverage Status npm GitHub license Maintenance Donate

Use OAuth in a simple way inside your electron App.


add it to your electron project using npm install oauth-electron --save or yarn add oauth-electron


require oauth-electron exports a function that requires a javascript object and an electron window, as seen on the next example:


const login = require(`oauth-electron`)

let info = {
    key: ***,
    secret: ***,
    accessUrl: ***,
    authenticateUrl: ***,
    version: ***,
    authCallback: ***,
    signatureMethod: ***,
window = new BrowserWindow({webPreferences: {nodeIntegration: false}});

login.oauth1(info, window)

the login function will return a Promise with the access token and secret

    token: ***,
    tokenSecret: ***


const login = require('oauth-electron')

let info = {
    key: ***,
    secret: ***,
    scope: ***,
    baseSite: ***,
    authorizePath: ***,
    accessTokenPath: ***,
    redirectUrl: ***,
    responseType: ***, //this is optional if not provided it will default to 'code'
window = new BrowserWindow({webPreferences: {nodeIntegration: false}});

login.oauth2(info, window)

the login function will return a Promise with the access token and secret

    accessToken: ***,
    refreshToken: ***


Consider this before you integrate this library in your application:

  • It is a bad practice to hardcode keys & secrets in code that is going to be shipped.
  • If you are looking to have your own backend, consider using it for authentication with 3rd party services. IETF RFC 8252.

Migration V0.x to V1.x

  • there is no more need for the oauth object, info becomes a basic object with the properties stated in the usage step.
  • the return object has a different format.
logo: Award,Passport graphics by Freepik from Flaticon are licensed under CC BY 3.0. Made with Logo Maker