diff options
| author | lambda <pleromagit@rogerbraun.net> | 2017-12-05 09:13:16 +0000 |
|---|---|---|
| committer | lambda <pleromagit@rogerbraun.net> | 2017-12-05 09:13:16 +0000 |
| commit | bf7b5a7105e6543411d83ba126dab6b00955c98c (patch) | |
| tree | 4c804afb2f5398221f4ca9ff546e29eebffe98f5 | |
| parent | f72d6ec83ef753241a9329306c0b3fdf1c3cf534 (diff) | |
| parent | f4f63d32e2bc2622ebdfe7599cc8aca987ddcee4 (diff) | |
Merge branch 'fix/unicode-passwords' into 'develop'
Fix basicauth base64 encoding for unicode passwords.
See merge request pleroma/pleroma-fe!180
| -rw-r--r-- | src/services/api/api.service.js | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index fa95b870..5b078bc8 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -43,6 +43,16 @@ let fetch = (url, options) => { return oldfetch(fullUrl, options) } +// from https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding +let utoa = (str) => { + // first we use encodeURIComponent to get percent-encoded UTF-8, + // then we convert the percent encodings into raw bytes which + // can be fed into btoa. + return btoa(encodeURIComponent(str) + .replace(/%([0-9A-F]{2})/g, + (match, p1) => { return String.fromCharCode('0x' + p1) })) +} + // Params // cropH // cropW @@ -156,7 +166,7 @@ const register = (params) => { const authHeaders = (user) => { if (user && user.username && user.password) { - return { 'Authorization': `Basic ${btoa(`${user.username}:${user.password}`)}` } + return { 'Authorization': `Basic ${utoa(`${user.username}:${user.password}`)}` } } else { return { } } |
