>  기사  >  백엔드 개발  >  JWT는 청구 유효성 및 오류를 어떻게 해결합니까?

JWT는 청구 유효성 및 오류를 어떻게 해결합니까?

王林
王林앞으로
2024-02-06 11:12:03406검색

JWT 如何解析声明有效性和错误?

질문 내용

액세스, 새로고침 토큰 로직을 생성 중인데, 액세스 토큰이 만료되었더라도 유효한지(수정되지 않았는지) 확인하고 싶습니다. 토큰이 만료되면 Go는 오류를 반환하고 토큰을 무효화합니다. 그래서 주어진 오류가 ErrTokenExpired와 일치하는지 확인합니다.

토큰이 유효하지 않으면 오류가 0이 아니므로 삭제할 수 있다고 100% 확신할 수 있나요 if !tkn.Valid{...?

이것은 일반적으로 좋은 접근 방식입니까, 아니면 편집된 토큰이 내 확인을 통과합니까?

으아아아
func VerifyJWT(jwtString, secret string) (*jwt.Token, *Claims, error) {
    claims := &Claims{}
    tkn, err := jwt.ParseWithClaims(jwtString, claims, func(token *jwt.Token) (interface{}, error) {
        return []byte(os.Getenv(secret)), nil
    })
    return tkn, claims, err
}

정답


코드에 두 가지 점이 있으면 jwt 토큰은 안전합니다.

1-좋은 알고리즘을 선택하세요
2- 임의의 키 만들기

토큰이 변경되거나 시간이 초과되면 다음 두 가지 옵션이 도움이 될 수 있습니다. VerifyJWT오류를 반환하세요!

참고: 항상 오류를 확인하고 클라이언트에게 좋은 응답을 보내야 합니다.

참고(코드 개선): 오류가 ErrTokenExpired인지 확인하려면 errors pkg를 사용하세요.

예:

으아아아

위 내용은 JWT는 청구 유효성 및 오류를 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제