IMPORTANT SECURITY NOTICE: This repo was a proof of concept and unfortunately it is not secure to use for production purposes. If you're trying to implement OAuth in an Electron app, please see IETF RFC 8252, Google's recommendations (here and here), or AppAuth-JS.
A library to handle OAuth2 authentication for your Electron app.
$ npm install --save electron-oauth2
const electronOauth2 = require('electron-oauth2');
var config = {
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
authorizationUrl: 'AUTHORIZATION_URL',
tokenUrl: 'TOKEN_URL',
useBasicAuthorizationHeader: false,
redirectUri: 'http://localhost'
};
app.on('ready', () => {
const windowParams = {
alwaysOnTop: true,
autoHideMenuBar: true,
webPreferences: {
nodeIntegration: false
}
}
const options = {
scope: 'SCOPE',
accessType: 'ACCESS_TYPE'
};
const myApiOauth = electronOauth2(config, windowParams);
myApiOauth.getAccessToken(options)
.then(token => {
// use your token.access_token
myApiOauth.refreshToken(token.refresh_token)
.then(newToken => {
//use your new token
});
});
});
Type: Object
Type: String
The URL for the authorization request.
Type: String
The URL for the access token request.
Type: String
The OAuth2 client id.
Type: String
The OAuth2 client secret.
Type: bool
If set to true, token requests will be made using a Basic authentication header instead of passing the client id and secret in the body.
Type: String
Sets a custom redirect_uri that can be required by some OAuth2 clients.
Default: urn:ietf:wg:oauth:2.0:oob
Type: Object
An object that will be used to create the BrowserWindow. Details: Electron BrowserWindow documention
Returns a Promise
that gets resolved with the retrieved access token object if the authentication succeeds.
Type: String
The optional OAuth2 scopes.
Type: String
The optional OAuth2 access type.
Type: Object
The optional additional parameters to pass to the server in the body of the authorization code request.
Type: Object
The optional additional parameters to pass to the server in the body of the token request.
Returns a Promise
that gets resolved with the authorization code of the OAuth2 authorization request.
Type: String
The optional OAuth2 scope.
Type: String
The optional OAuth2 access type.
Returns a Promise
that gets resolved with the refreshed token object.
Type: String
An OAuth2 refresh token.
MIT © Marcel Wiehle