所以,这是问题:
Uncaught InvalidCharacterError: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
当我尝试在 session 开始时对数据进行编码时会发生这种情况,因此在 auth.js 中我有以下内容:
function Auth($rootScope, $window, $state, Restangular, userInfo) {
var token = $window.localStorage.token;
if (token) {
var payload = JSON.parse($window.atob(token.split('.')[1]));
$rootScope.currentUser = payload.user;
}
return {
signup: function(userinfo, callback) {
var cb = callback || angular.noop;
Restangular.all('auth/signup').post(userinfo).then(function() {
return cb();
}, function(response) {
return cb(response.data);
});
},
login: function(user, callback) {
var cb = callback || angular.noop;
Restangular.all('auth/login').post(user).then(function(data) {
$window.localStorage.token = data.token;
var payload = JSON.parse($window.atob(data.token.split('.')[1]));
$rootScope.currentUser = payload.user;
return cb();
}, function(response) {
delete $window.localStorage.token;
return cb(response.data);
});
}
在其他机器上它工作正常,但我有这个问题。那么,您能告诉我从什么开始寻找解决方案吗? This和 this已经看到了。我脑子里没有任何想法
最佳答案
我想我们看到的是同一个图坦卡蒙。 而不是:
$window.atob(data.token.split('.')[1])
试试这个:
window.atob(window.localStorage['YOUR-ELEMENT'].split('.')[1])
“$window”未定义。
关于javascript - 加密个人数据 atob 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28068394/