Closed1

Auth0でのGoの色々なこと

Watson-SeiWatson-Sei

Auth0のチュートリアル通りに実装してもaudience処理が成功しない時や、複数audienceの読み込みをする際は以下のように実装する

// Verify 'aud' claim
aud := os.Getenv("AUTH0_IDENTIFIER")
// 複数のオーディエンスの場合、JWTトークンのオーディエンスを[] interface {}に変換します
convAud, ok := token.Claims.(jwt.MapClaims)["aud"].([]interface{})
if !ok {
    // オーディエンスが1つしかない場合は、JWTトークンのオーディエンスを文字列に変換します
    strAud, ok := token.Claims.(jwt.MapClaims)["aud"].(string)
    // 文字列に変換できない場合はエラーを返します
    if !ok {
        return token, errors.New("Invalid audience.")
    }
    // オーディエンスが一致しない場合はエラーを返します
    if strAud != aud {
        return token, errors.New("Invalid audience.")
    }
} else {
    for _, v := range convAud {
        if v == aud {
            break
        } else {
            return token, errors.New("Invalid audience.")
        }
    }
}

https://community.auth0.com/t/invalid-audience-with-go-api-backend-frontend-react-spa/60267/2

このスクラップは2024/01/26にクローズされました