ホームページ > バックエンド開発 > Golang > JWT はクレームの有効性とエラーをどのように解決しますか?

JWT はクレームの有効性とエラーをどのように解決しますか?

王林
リリース: 2024-02-06 11:12:03
転載
468 人が閲覧しました

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

質問内容

アクセス、リフレッシュトークンのロジックを作成しているのですが、アクセストークンが有効かどうか(編集されていないか)を確認したいのですが、期限切れ。トークンの有効期限が切れると、Go はエラーを返し、トークンを無効にします。そこで、指定されたエラーが ErrTokenExpired と一致するかどうかを確認します。

トークンが無効な場合、err がゼロにならないことを 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
}
ログイン後にコピー

正解


コード内に 2 つのポイントがある場合、jwt トークンは安全です:

1-適切なアルゴリズムを選択する
2- ランダムキーを作成します

トークンが変更されるかタイムアウトになる場合は、次の 2 つのオプションが役に立ちます。VerifyJWTエラーを返します。

注: 常にエラーをチェックし、クライアントに適切な応答を返す必要があります。

注 (コードを改善): エラーが ErrTokenExpired かどうかを確認するには、errors パッケージを使用します。

あなたの例:

リーリー

以上がJWT はクレームの有効性とエラーをどのように解決しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート