Init
This commit is contained in:
42
api/authed.go
Normal file
42
api/authed.go
Normal file
@ -0,0 +1,42 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/clerkinc/clerk-sdk-go/clerk"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
func Authed(c echo.Context) error {
|
||||
apiKey := os.Getenv("CLERK_SECRET_KEY")
|
||||
|
||||
client, err := clerk.NewClient(apiKey)
|
||||
if err != nil {
|
||||
// handle error
|
||||
println(err.Error())
|
||||
}
|
||||
|
||||
// get session token from Authorization header
|
||||
sessionToken := c.Request().Header.Get("Authorization")
|
||||
sessionToken = strings.TrimPrefix(sessionToken, "Bearer ")
|
||||
|
||||
println(sessionToken)
|
||||
|
||||
// verify the session
|
||||
sessClaims, err := client.VerifyToken(sessionToken)
|
||||
if err != nil {
|
||||
println(err.Error())
|
||||
return c.String(http.StatusUnauthorized, "Unauthorized!")
|
||||
}
|
||||
|
||||
// get the user, and say welcome!
|
||||
user, err := client.Users().Read(sessClaims.Claims.Subject)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return c.String(http.StatusOK, "Welcome "+*user.FirstName)
|
||||
|
||||
}
|
Reference in New Issue
Block a user