Nohit-Java17 / Jira-Project

CyberSoft Java 17 - Capstone Project

Home Page:https://ecommerce.yamiannephilim.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DỰ ÁN WEB THƯƠNG MẠI ĐIỆN TỬ

Trang web thương mại điện tử được thiết lập để phục vụ một phần hoặc toàn bộ quy trình của hoạt động mua bán hàng hóa hay cung ứng dịch vụ, từ trưng bày giới thiệu hàng hóa, dịch vụ đến giao kết hợp đồng, cung ứng dịch vụ, thanh toán và dịch vụ sau bán hàng.

LINK DEMO

HÌNH ẢNH DEMO

VIDEO DEMO

IMAGE ALT TEXT HERE

CẤU HÌNH API REFRESH TOKEN

// Refresh token
    @GetMapping(TOKEN_VIEW + REFRESH_VIEW)
    public void refreshToken(HttpServletRequest request, HttpServletResponse response)
            throws StreamWriteException, DatabindException, IOException {
        var header = request.getHeader(AUTHORIZATION);
        // check token format in authorization header
        if (header != null && header.startsWith(TOKEN_PREFIX)) {
            // get token from authorization header
            try {
                var refreshToken = header.substring(TOKEN_PREFIX.length());
                var algorithm = HMAC256(SECRET_KEY.getBytes());
                var user = userService.getUser(require(algorithm).build().verify(refreshToken).getSubject());
                var tokens = new HashMap<>();
                tokens.put(ACCESS_TOKEN_KEY,
                        create().withSubject(user.getEmail())
                                .withExpiresAt(new Date(currentTimeMillis() + EXPIRATION_TIME))
                                .withIssuer(request.getRequestURL().toString())
                                .withClaim(ROLE_CLAIM_KEY,
                                        singleton(new Role(ROLE_PREFIX + user.getRole().getName().toUpperCase()))
                                                .stream().map(Role::getName).collect(toList()))
                                .sign(algorithm));
                tokens.put(REFRESH_TOKEN_KEY, refreshToken);
                response.setContentType(APPLICATION_JSON_VALUE);
                new ObjectMapper().writeValue(response.getOutputStream(), tokens);
            } catch (Exception e) {
                var errorMsg = e.getMessage();
                response.setHeader(ERROR_HEADER_KEY, errorMsg);
                response.setStatus(FORBIDDEN.value());
                var error = new HashMap<>();
                error.put(ERROR_MESSAGE_KEY, errorMsg);
                response.setContentType(APPLICATION_JSON_VALUE);
                new ObjectMapper().writeValue(response.getOutputStream(), error);
            }
        } else {
            throw new RuntimeException("Refresh token is missing");
        }
    }

EER Diagram

THÀNH VIÊN

Nhóm NOHIT gồm các thành viên:

  • Nguyễn Đặng Trường An (team lead)
  • Trần Gia Bảo (đã rời nhóm)
  • Cao Đức Mạnh
  • Đặng Bá Quí (đã rời nhóm)
  • Nguyễn Tiến Đạt

TÍCH HỢP

  • Java JWT » 4.0.0

About

CyberSoft Java 17 - Capstone Project

https://ecommerce.yamiannephilim.com


Languages

Language:HTML 41.1%Language:Java 32.8%Language:CSS 22.9%Language:JavaScript 3.2%Language:Dockerfile 0.0%Language:Procfile 0.0%