Comments (1)
I've solved the problem, and it is not what I had written in the previous issue. The problem is in passing a proper PEM key. Two things should be noted:
- Generating the key in the proper format - Using
openssl
generating a key for RSA-SHA1 is as follows:
openssl genrsa -out rsa-private-key.pem 1024
This generates a key rsa-private-key.pem
with header:
-----BEGIN RSA PRIVATE KEY-----
This is the format that will NOT be accepted by computeRsaSignature(algorithm, value, key)
function and must be converted to pkcs8 format with openssl
and this command:
openssl pkcs8 -topk8 -inform pem -in rsa-private-key.pem -outform pem -nocrypt -out private-key.pem
The output private-key.pem
should start with:
-----BEGIN PRIVATE KEY-----
- Passing the key in the format required - the approach I used is to ask the user for the private key from a
ui.prompt
without the-----BEGIN PRIVATE KEY-----
, and then when storing the key inPropertiesService
, the-----BEGIN PRIVATE KEY-----\n
and\n-----END PRIVATE KEY-----\n
is appended.
/**
* Dialog box to enter private key.
*/
function enterPrivateKey() {
var ui = SpreadsheetApp.getUi();
var result = ui.prompt("Enter private key", ui.ButtonSet.OK_CANCEL);
// Process the user's response.
var button = result.getSelectedButton();
if (button == ui.Button.OK) { // User clicked "OK".
var scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty("PRIVATE_KEY", "-----BEGIN PRIVATE KEY-----\n" + result.getResponseText() + "\n-----END PRIVATE KEY-----\n");
ui.alert("private key saved");
} else if (button == ui.Button.CANCEL) { // User clicked "Cancel".
ui.alert("Private key was not saved");
} else if (button == ui.Button.CLOSE) { // User clicked X in the title bar.
ui.alert("You closed the dialog.");
}
}
from apps-script-oauth1.
Related Issues (20)
- QuickBooks error when querying with = HOT 1
- Modify Callback Function? HOT 2
- Not working anymore? HOT 1
- Lack of RSA-SHA1 support HOT 3
- Support for "2-legged" OAuth v1.0a? HOT 6
- Goodreads OAuth Problems HOT 3
- Support for Standalone Google Apps Script Projects HOT 1
- Etsy OAuth 1.0 issues HOT 9
- OAUTH Token undefined HOT 2
- OAuth1a without TokenUrl HOT 5
- Can I pass Basic Auth of request url ? HOT 4
- Unknown or previously rejected token HOT 1
- Upgrade to the latest version of the OAuth signer library
- Implement fetchAll
- OAuth1 not working in Chrome V8 Engine HOT 1
- Trello Invalid Signature HOT 1
- Security: OAuth Client ID and Secret are accessible to any user of an Apps Script in almost all samples HOT 1
- [SyncRepoSettings bot] - Invalid config file
- .
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apps-script-oauth1.