Use OAuth in a simple way inside your electron App.
Installation
add it to your electron project using npm install oauth-electron --save
or yarn add oauth-electron
Usage
require oauth-electron
exports a function that requires a javascript object and an electron window, as seen on the next example:
Oauth1
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: ***
}
Oauth2
const login = require('oauth-electron')
const { BrowserWindow, session } = require('electron')
let info = {
key: ***,
secret: ***,
scope: ***,
baseSite: ***,
authorizePath: ***,
accessTokenPath: ***,
redirectUrl: ***,
responseType: ***,
},
window = new BrowserWindow({webPreferences: {nodeIntegration: false}});
login.oauth2(info, window, session)
the login function will return a Promise with the access token and secret
{
accessToken: ***,
refreshToken?: ***,
<others: ***>
}
Security
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 V1.x to V2.x
- Please refer to the response of the service, as there will probably be extra fields in the response
- session is required to be passed as events of chromium have changed
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