Skip to content

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

Pinned Loading

  1. Jira-Project Jira-Project Public

    CyberSoft Java 17 - Capstone Project

    HTML 5 1

Repositories

Showing 2 of 2 repositories
  • Jira-Project Public

    CyberSoft Java 17 - Capstone Project

    Nohit-Java17/Jira-Project’s past year of commit activity
    HTML 5 1 0 1 Updated Dec 2, 2024
  • .github Public archive

    Readme

    Nohit-Java17/.github’s past year of commit activity
    1 0 0 0 Updated Jan 24, 2024

Top languages

Loading…

Most used topics

Loading…