qba73 / scope

Scope validates if OIDC tokens conform to RFC6749 spec

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Go Reference Go Go Report Card

scope

scope is a Go library for validating OIDC token scopes. It allows you to verify if tokens meet validation requirements described in the RFC6749 document.

Using the Go library

The following example illustrates how to verify the OIDC scope string. The scope must include the openid token.

import (
    "fmt"
    "strings"

    "github.com/qba73/scope"
)

func main() {
    scopes := []string{"openid myscope email", "myscope email"}
    
    for _, s := range scopes {
        if !scope.ValidOIDC(s) {
            fmt.Println("invalid scope")
        }
    }
}

The following example illustrates how to verify tokens in the scope. Note that func Valid() validates if tokens do not contain unsupported characters.

import (
    "fmt"
    "strings"

    "github.com/qba73/scope"
)

func main() {
    tokens := "openid myscope email"
    
    for _, token := range strings.Split(tokens, "+") {
        if !scope.Valid(token) {
            fmt.Printf("scope/token %v is not valid\n", token)
        }
        fmt.Printf("scope/token %v is valid\n", token)
    }
}

Bugs and feature requests

If you find a bug in the scope library, please open an issue. Similarly, if you'd like a feature added or improved, let me know via an issue.

Pull requests welcome!

About

Scope validates if OIDC tokens conform to RFC6749 spec

License:MIT License


Languages

Language:Go 78.4%Language:Makefile 21.6%