satellite/console: Add CORS headers for register endpoint
Set the Access-Control-Allow-Origin header if a request is made to the registration endpoint from storj.io or www.storj.io. This allows the client to make the request with no issues. Change-Id: I0cd747ececfe877fb5f834d8292307fc14e3db5c
This commit is contained in:
parent
d22ecf9ec0
commit
1fa0cfbfe0
@ -31,6 +31,12 @@ var (
|
||||
// errNotImplemented is the error value used by handlers of this package to
|
||||
// response with status Not Implemented.
|
||||
errNotImplemented = errs.New("not implemented")
|
||||
|
||||
// supportedCORSOrigins allows us to support visitors who sign up from the website.
|
||||
supportedCORSOrigins = map[string]bool{
|
||||
"https://storj.io": true,
|
||||
"https://www.storj.io": true,
|
||||
}
|
||||
)
|
||||
|
||||
// Auth is an api controller that exposes all auth functionality.
|
||||
@ -111,6 +117,18 @@ func (a *Auth) Register(w http.ResponseWriter, r *http.Request) {
|
||||
var err error
|
||||
defer mon.Task()(&ctx)(&err)
|
||||
|
||||
origin := r.Header.Get("Origin")
|
||||
if supportedCORSOrigins[origin] {
|
||||
// we should send the exact origin back, rather than a wildcard
|
||||
w.Header().Set("Access-Control-Allow-Origin", origin)
|
||||
w.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS")
|
||||
}
|
||||
|
||||
// OPTIONS is a pre-flight check for cross-origin (CORS) permissions
|
||||
if r.Method == "OPTIONS" {
|
||||
return
|
||||
}
|
||||
|
||||
var registerData struct {
|
||||
FullName string `json:"fullName"`
|
||||
ShortName string `json:"shortName"`
|
||||
|
@ -226,7 +226,7 @@ func NewServer(logger *zap.Logger, config Config, service *console.Service, mail
|
||||
authRouter.Handle("/mfa/generate-recovery-codes", server.withAuth(http.HandlerFunc(authController.GenerateMFARecoveryCodes))).Methods(http.MethodPost)
|
||||
authRouter.HandleFunc("/logout", authController.Logout).Methods(http.MethodPost)
|
||||
authRouter.Handle("/token", server.rateLimiter.Limit(http.HandlerFunc(authController.Token))).Methods(http.MethodPost)
|
||||
authRouter.Handle("/register", server.rateLimiter.Limit(http.HandlerFunc(authController.Register))).Methods(http.MethodPost)
|
||||
authRouter.Handle("/register", server.rateLimiter.Limit(http.HandlerFunc(authController.Register))).Methods(http.MethodPost, http.MethodOptions)
|
||||
authRouter.Handle("/forgot-password/{email}", server.rateLimiter.Limit(http.HandlerFunc(authController.ForgotPassword))).Methods(http.MethodPost)
|
||||
authRouter.Handle("/resend-email/{id}", server.rateLimiter.Limit(http.HandlerFunc(authController.ResendEmail))).Methods(http.MethodPost)
|
||||
authRouter.Handle("/reset-password", server.rateLimiter.Limit(http.HandlerFunc(authController.ResetPassword))).Methods(http.MethodPost)
|
||||
|
Loading…
Reference in New Issue
Block a user