【问题标题】:Save service data while refreshing page刷新页面时保存服务数据
【发布时间】:2021-12-29 15:08:30
【问题描述】:

我有一个简单的服务,它保存用户凭据(通过 btoa 的用户名和密码):

@Injectable({
  providedIn: 'root'
})
export class UserService {
  userCredentials = '';
}

登录时初始化文件:

this.userService.userCredentials =  btoa(this.user.username + ':' + this.user.password);

我在我的后端 Spring Boot 应用程序中使用此凭据来验证用户等:

@RequestMapping("/core/user")
public Principal user(HttpServletRequest request) {
    String authToken = request.getHeader("Authorization").substring("Basic".length()).trim();
    return () -> new String(Base64.getDecoder().decode(authToken)).split(":")[0];
}

如何在不丢失服务数据的情况下处理页面刷新? 在会话存储中保存此类数据非常不安全,因此我不想将用户凭据存储在 localStorage/sessionStorage 中。

【问题讨论】:

    标签: angular spring session observable


    【解决方案1】:

    您应该保存您的 authToken,而不是 userCredentials。 刷新时,进行查询以使用令牌登录。 如果它仍然有效,您将检索用户凭据。

    【讨论】:

      【解决方案2】:

      基本上你不能这样做。您可以使用localStoragesessionStoragecookies,在重新加载时将它们传递给queryParams,然后再次获取它们或通过api调用获取它们。

      别无他法。

      【讨论】:

        猜你喜欢
        • 2014-07-24
        • 1970-01-01
        • 2018-08-02
        • 2015-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-05
        • 2020-11-24
        相关资源
        最近更新 更多