You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

56 lines
1.5 KiB

package main
import (
"flag"
"fmt"
"log"
"net/http"
"git.chrishayward.xyz/x/users/gateway"
"git.chrishayward.xyz/x/users/proto"
"google.golang.org/grpc"
)
var (
port = flag.Int("port", 8081, "--port=8081")
domain = flag.String("domain", "http://localhost", "--domain=localhost")
serverAddr = flag.String("serverAddr", "localhost", "--serverAddr=localhost")
serverPort = flag.Int("serverPort", 8080, "--serverPort=8080")
serverSecret = flag.String("serverSecret", "...", "--serverSecret=...")
)
func authorized(f http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
}
}
func main() {
// Parse the optional flags.
flag.Parse()
// Create the connection to the server.
conn, err := grpc.Dial(fmt.Sprintf("%s:%d", *serverAddr, *serverPort))
if err != nil {
log.Fatal(err)
}
// Defer closing the connection.
defer conn.Close()
// Create the client.
client := proto.NewUsersClient(conn)
// Setup HTTP endpoints.
http.HandleFunc("/register", gateway.Register(client))
http.HandleFunc("/login", gateway.Login(client))
http.HandleFunc("/logout", gateway.Authorize(client, serverSecret, gateway.Logout(client)))
http.HandleFunc("/reset_password", gateway.ResetPassword(client, fmt.Sprintf("%s, %d", *domain, *port)))
http.HandleFunc("/change_password", gateway.ChangePassword(client))
// Listen for requests.
log.Printf("Forwarding from :%d to %s:%d", *port, *serverAddr, *serverPort)
if err := http.ListenAndServe(fmt.Sprintf(":%d", *port), nil); err != nil {
log.Fatal(err)
}
}