fix url-safe base64 jwt encoding
This commit is contained in:
parent
6f86d6ea6c
commit
0e7d7ecaea
|
@ -64,6 +64,8 @@
|
||||||
return argsParsed;
|
return argsParsed;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// these might not really belong in core... not sure
|
||||||
|
// there should be node.js- and browser-specific versions probably
|
||||||
core.utils = {
|
core.utils = {
|
||||||
urlSafeBase64ToBase64: function (b64) {
|
urlSafeBase64ToBase64: function (b64) {
|
||||||
// URL-safe Base64 to Base64
|
// URL-safe Base64 to Base64
|
||||||
|
@ -95,17 +97,19 @@
|
||||||
return {
|
return {
|
||||||
header: JSON.parse(jsons[0])
|
header: JSON.parse(jsons[0])
|
||||||
, payload: JSON.parse(jsons[1])
|
, payload: JSON.parse(jsons[1])
|
||||||
, signature: parts[2]
|
, signature: parts[2] // should remain url-safe base64
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// encode-only (no signature)
|
// encode-only (no signature)
|
||||||
, encode: function (parts) {
|
, encode: function (parts) {
|
||||||
parts.header = parts.header || { alg: 'none', typ: 'jwt' };
|
parts.header = parts.header || { alg: 'none', typ: 'jwt' };
|
||||||
parts.signature = parts.signature || '';
|
parts.signature = parts.signature || '';
|
||||||
|
|
||||||
|
var btoa = exports.btoa || require('btoa');
|
||||||
var result = [
|
var result = [
|
||||||
core.utils.base64ToUrlSafeBase64(JSON.stringify(parts.header, null))
|
core.utils.base64ToUrlSafeBase64(btoa(JSON.stringify(parts.header, null)))
|
||||||
, core.utils.base64ToUrlSafeBase64(JSON.stringify(parts.payload, null))
|
, core.utils.base64ToUrlSafeBase64(btoa(JSON.stringify(parts.payload, null)))
|
||||||
, parts.signature
|
, parts.signature // should already be url-safe base64
|
||||||
].join('.');
|
].join('.');
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Reference in New Issue