66 "net/http"
77 "strings"
88
9+ "github.com/supertokens/supertokens-golang/recipe/emailverification"
10+ "github.com/supertokens/supertokens-golang/recipe/emailverification/evmodels"
911 "github.com/supertokens/supertokens-golang/recipe/session"
1012 "github.com/supertokens/supertokens-golang/recipe/thirdparty"
1113 "github.com/supertokens/supertokens-golang/recipe/thirdparty/tpmodels"
@@ -26,6 +28,9 @@ func main() {
2628 WebsiteDomain : "http://localhost:3000" ,
2729 },
2830 RecipeList : []supertokens.Recipe {
31+ emailverification .Init (evmodels.TypeInput {
32+ Mode : evmodels .ModeRequired ,
33+ }),
2934 thirdpartyemailpassword .Init (& tpepmodels.TypeInput {
3035 /*
3136 We use different credentials for different platforms when required. For example the redirect URI for Github
@@ -95,7 +100,7 @@ func main() {
95100 server := rest .MustNewServer (
96101 rest.RestConf {
97102 Host : "0.0.0.0" ,
98- Port : 8000 ,
103+ Port : 3001 ,
99104 },
100105 )
101106 defer server .Stop ()
@@ -105,11 +110,20 @@ func main() {
105110 addSupertokensRoutes ("/auth" , server ) // go-zero doesn't execute middlewares if matching routes are not found
106111 server .AddRoute (rest.Route {
107112 Method : http .MethodGet ,
108- Path : "/sessionInfo " ,
113+ Path : "/sessioninfo " ,
109114 Handler : func (rw http.ResponseWriter , r * http.Request ) {
110115 session .VerifySession (nil , sessioninfo ).ServeHTTP (rw , r )
111116 },
112117 })
118+
119+ // go-zero does not honour middlewares for CORS requests unless we explicitly add a route for it.
120+ server .AddRoute (rest.Route {
121+ Method : http .MethodOptions ,
122+ Path : "/sessioninfo" ,
123+ Handler : func (rw http.ResponseWriter , r * http.Request ) {
124+ rw .WriteHeader (http .StatusOK )
125+ },
126+ })
113127 server .Start ()
114128}
115129
@@ -148,12 +162,11 @@ func sessioninfo(w http.ResponseWriter, r *http.Request) {
148162
149163func corsMiddleware (next http.HandlerFunc ) http.HandlerFunc {
150164 return func (response http.ResponseWriter , r * http.Request ) {
151- response .Header ().Set ("Access-Control-Allow-Origin" , "localhost:8000 " )
165+ response .Header ().Set ("Access-Control-Allow-Origin" , "http:// localhost:3000 " )
152166 response .Header ().Set ("Access-Control-Allow-Credentials" , "true" )
153167 if r .Method == "OPTIONS" {
154168 response .Header ().Set ("Access-Control-Allow-Headers" , strings .Join (append ([]string {"Content-Type" }, supertokens .GetAllCORSHeaders ()... ), "," ))
155- response .Header ().Set ("Access-Control-Allow-Methods" , "*" )
156- response .Write ([]byte ("" ))
169+ response .Header ().Set ("Access-Control-Allow-Methods" , "GET,POST,PUT,HEAD,OPTIONS" )
157170 } else {
158171 next .ServeHTTP (response , r )
159172 }
0 commit comments