47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package api
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
func RegisterAuthEndpoints() {
|
|
fmt.Println("TODO: change access token format from uuid to a more secure format")
|
|
|
|
http.HandleFunc("/auth/user_and_pass", EndpointAuthUserAndPass)
|
|
http.HandleFunc("/auth/check_access_token", EndpointAuthCheckAccessToken)
|
|
}
|
|
|
|
type returnEndpointAuthUserAndPass struct {
|
|
AccessToken string
|
|
}
|
|
|
|
func EndpointAuthUserAndPass(w http.ResponseWriter, r *http.Request) {
|
|
fmt.Println("STUB WARNING: EndpointAuthUserAndPass, need to check method and implement authentication")
|
|
|
|
//gopls doesnt like this line unless prefixed with var, may be a skill issue on my end
|
|
var ret returnEndpointAuthUserAndPass
|
|
ret.AccessToken = uuid.New().String()
|
|
|
|
retJson, err := json.Marshal(ret)
|
|
if err != nil {
|
|
fmt.Println("API warning: failed to marshal /auth/user_and_pass response")
|
|
http.Error(w, "Internal server error", http.StatusInternalServerError)
|
|
return
|
|
}
|
|
|
|
//w.WriteHeader(http.StatusUnauthorized)
|
|
|
|
w.Header().Set("Content-Type", "application/json")
|
|
w.Write(retJson)
|
|
}
|
|
|
|
func EndpointAuthCheckAccessToken(w http.ResponseWriter, r *http.Request) {
|
|
fmt.Println("STUB WARNING: EndpointAuthCheckToken, need to check method and implement authentication")
|
|
|
|
//w.WriteHeader(http.StatusUnauthorized)
|
|
}
|