【问题标题】:error on crypting personal data atob加密个人数据 atob 时出错
【发布时间】:2026-01-07 12:30:01
【问题描述】:

所以,这是个问题:

Uncaught InvalidCharacterError: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.

当我在会话开始时尝试编码数据时会发生这种情况,所以在 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);
      });
    }

在其他机器上它工作正常,但我有这个问题。那么,你能告诉我我可以从什么开始找到解决方案吗? Thisthis 已经看到了。我脑子里没有想法

【问题讨论】:

    标签: javascript gruntjs crypt


    【解决方案1】:

    认为我们在看同一个 Tut。 而不是:

    $window.atob(data.token.split('.')[1])
    

    试试这个:

    window.atob(window.localStorage['YOUR-ELEMENT'].split('.')[1])
    

    “$window”未定义。

    【讨论】: