Avatar
0
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
ezyfox login
private void loginWithToken(EzyUserLoginEvent event, String token) {
    logger.info("handle user login in with token");
    try {
        byte[] usernameBytes = EzyAesCrypt.getDefault().decrypt(
            EzyBase64.decode(token),
            CommonConstants.TOKEN_ENCRYPTION_KEY.getBytes()
        );
        String username = new String(usernameBytes);
        event.setUsername(username);
    } catch (Exception e) {
        throw new EzyLoginErrorException(EzyLoginError.INVALID_TOKEN);
    }
}

private String getAccessToken(EzyUserLoginEvent event) {
    Object loginData = event.getData();
    if (loginData instanceof EzyObject) {
        return ((EzyObject) loginData).get("accessToken", String.class);
    }
    return null;
}

Em hiện đang đọc 2 hàm này ở lớp UserLoginController

Vậy vì sao userName anh cần chuyển thành bytecode. Em nghĩ password mới cần encrypt ạ

  • Answer
Remain: 5
1 Answer
Avatar
tvd12 Professional
tvd12 Professional
  1. Cái này chỉ là 1 example trong việc sử dụng token để login thôi em ạ, chứ nó không phải là 1 tiêu chuẩn của ezyfox server
  2. Cái này là do anh đang minh hoạ việc sử dụng thuật toán mã hoá AES để mã hoá username trở thành token vì anh không muốn sử dụng jwt token và anh cũng không muốn sử dụng database
  • 0
  • Reply