Skip to content

no provider for openid-connect exists #601

Open
@habsfanongit

Description

@habsfanongit

I keep getting no provider for openid-connect exists when I try to connect to local keycloak.

package main

import (
	"fmt"
	"html/template"
	"net/http"

	"github.com/markbates/goth"
	"github.com/markbates/goth/gothic"
	"github.com/markbates/goth/providers/openidConnect"
)

func main() {

	openidConnect, _ := openidConnect.New("idp", "SECRET", "http://localhost:7080/realms/svcs/.well-known/openid-configuration", "http://localhost:8080/auth/openid-connect/callback")

	if openidConnect != nil {
		goth.UseProviders(openidConnect)
	}
	// Note that the redirect URL is different here than in your original code.
	//goth.UseProviders(oid)

	r := http.NewServeMux()
	r.HandleFunc("GET /auth/openid-connect/callback", func(res http.ResponseWriter, r *http.Request) {
		q := r.URL.Query()
		q.Add("provider", "openid-connect")
		r.URL.RawQuery = q.Encode()
		user, err := gothic.CompleteUserAuth(res, r)
		if err != nil {
			fmt.Println("error ", err)
		}

		t, _ := template.New("foo").Parse(userTemplate)
		t.Execute(res, user)
	})
	r.HandleFunc("GET /auth/openid-connect", handleAuth)

	r.HandleFunc("/", func(writer http.ResponseWriter, r *http.Request) {

		t, _ := template.New("foo").Parse(indexTemplate)
		t.Execute(writer, nil)
	})

	http.ListenAndServe(":8080", r)

}
func handleAuth(w http.ResponseWriter, r *http.Request) {
	q := r.URL.Query()
	q.Add("provider", "openid-connect")
	r.URL.RawQuery = q.Encode()

	gothic.BeginAuthHandler(w, r)
}

var indexTemplate = `
<p><a href="/auth/openid-connect">Log in</a></p>
`

var userTemplate = `
<p>Name: {{.Name}}</p>
<p>Email: {{.Email}}</p>
<p>NickName: {{.NickName}}</p>
<p>Location: {{.Location}}</p>
<p>AvatarURL: {{.AvatarURL}} <img src="{{.AvatarURL}}"></p>
<p>Description: {{.Description}}</p>
<p>UserID: {{.UserID}}</p>
<p>AccessToken: {{.AccessToken}}</p>
`

Keycloak is running and the client is set. What am missing?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions