// Copyright © 2022 Ory Corp // SPDX-License-Identifier: Apache-2.0 package cmd import ( "strings" "github.com/spf13/cobra" "github.com/ory/hydra/v2/cmd/cliclient" "github.com/ory/x/cmdx" ) func NewIntrospectTokenCmd() *cobra.Command { var scope []string cmd := &cobra.Command{ Use: "token the-token", Args: cobra.ExactArgs(1), Example: `{{ .CommandPath }} AYjcyMzY3ZDhiNmJkNTY --project 32197be3-8e57-4009-becd-9d38dbde129c`, Short: "Introspect an OAuth 2.0 Access or Refresh Token", RunE: func(cmd *cobra.Command, args []string) error { client, _, err := cliclient.NewClient(cmd) if err != nil { return err } result, _, err := client.OAuth2API.IntrospectOAuth2Token(cmd.Context()). Token(args[0]). Scope(strings.Join(scope, " ")).Execute() //nolint:bodyclose if err != nil { return cmdx.PrintOpenAPIError(cmd, err) } cmdx.PrintRow(cmd, outputOAuth2TokenIntrospection(*result)) return nil }, } cmd.Flags().StringSliceVar(&scope, "scope", []string{}, "Additionally check if the scope was granted.") return cmd }