【问题标题】:How to pass JWT-TOKEN to localStorage using JavaScript (script for html)?如何使用 JavaScript(html 脚本)将 JWT-TOKEN 传递给 localStorage?
【发布时间】:2020-12-29 05:08:01
【问题描述】:

我正在为在线咖啡和茶店写一个Rest MVC 应用程序。使用了以下技术:Spring-BootHibernatePostgreSQLGradleThymeleafHTMLCSS。我已经准备好整个后端,还需要做一个前端。目前我正在制作授权页面。页面本身已准备好HTMLCSS,现在您需要自己制作授权逻辑。为此,我需要在javascript 中编写一个脚本,以便我的jwt token 存储在localStorage 中。关键是我不知道如何实现这一点,如何在localStorage 中使用javascripte 通过header 传递我的token

重要提示:javascript 必须干净,不使用框架(angularnode ...)。我该怎么做?

附:再一次,整个背面都准备好了。 Rest-authorization 方法有效(也就是说,我输入我的loginpassword - 我得到一个jwt token)。

Java - 授权方法

 public ResponseEntity<Map<String, String>> authorization(@RequestBody AuthenticationRequestDTO requestDto) {
        try {
            String login = requestDto.getLogin();
            authenticationManager
                    .authenticate(new UsernamePasswordAuthenticationToken(login, requestDto.getPassword()));

            User user = userRepository.getByLogin(login);

            if (user == null) {
                throw new AuthenticationServiceException("ddwd");
            }

            String token = jwtTokenProvider.createToken(login, user.getRole());

            Map<String, String> response = new HashMap<>();
            response.put("login", login);
            response.put("token", token);

            return ResponseEntity.ok(response);

        } catch (AuthenticationServiceException e) {
            log.error("Error: ", e);
            throw new AuthenticationServiceException("Invalid login");
        }
    }

【问题讨论】:

    标签: javascript java jwt authorization frontend


    【解决方案1】:

    您可以在本地存储中添加 JWT 令牌,然后通过 API 调用检索/读取和传递值。下面是从本地存储中设置和读取值的示例。

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script type="text/javascript">
    
    function createLocalstorageItem(txtJwtTokenValue) {
      sessionStorage.setItem("jwtToken", txtJwtTokenValue);
    }
    
    function readValue() {
     var jwtToken = sessionStorage.getItem("jwtToken");
    console.log("jwtToken : "+jwtToken );
    return jwtToken ;
    
    }
        
    function getDataFromAPiByPassingJwtTokenInHeader(){
    var jwtToken=readValue();
    $.ajax({
        url: 'https://url.com',
        type: 'post',
        data: {},
        headers: {
            Bearer Token: "Bearer "+jwtToken,   //key word **Bearer**  should pass before the token string
        },
        dataType: 'json',
        success: function (data) {
            console.info(data);
        }
    });
    }
    
    </script>
    

    请尝试这种方式。

    【讨论】:

    • 请更正代码,它会给出错误。我会很感激的。
    • 需要添加jquery文件
    • 抱歉,我不知道要将 lan 脚本插入什么格式。我没有jquery 格式,.js 不适合。更改后,仍会显示错误
    • 这只是一个您应该编写代码的示例。您可以根据需要更改
    猜你喜欢
    • 2013-04-09
    • 2020-06-15
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2012-10-15
    • 2019-07-07
    相关资源
    最近更新 更多