アクセス、リフレッシュトークンのロジックを作成しているのですが、アクセストークンが有効かどうか(編集されていないか)を確認したいのですが、期限切れ。トークンの有効期限が切れると、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 サイトの他の関連記事を参照してください。