Y
Size: a a a
IK
zl
Y
МП
ВС
I
// (GET /auth/callback/{provider})
func (si ServerInterface) AuthCallback(ctx echo.Context, provider string) error{
if !stringInSlice(provider, providers) {
return ctx.String(http.StatusNotFound, "")
}
q := ctx.Request().URL.Query()
q.Add("provider", provider)
ctx.Request().URL.RawQuery = q.Encode()
user, err := gothic.CompleteUserAuth(ctx.Response().Writer, ctx.Request())
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
}
log.Info(user)
sess, _ := session.Get("session", ctx)
sess.Options = &sessions.Options{
HttpOnly: true,
Secure: true,
MaxAge: maxAge,
}
sess.Values["id"]=1
err=sess.Save(ctx.Request(), ctx.Response())
if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
}
return ctx.Redirect(http.StatusTemporaryRedirect, "/user-example")
}
// (GET /user-example)
func UserExample(ctx echo.Context) error {
sess, _ := session.Get("session", ctx)
log.Info("User: ", sess.Values)
sess.Save(ctx.Request(), ctx.Response())
return ctx.File("static/text/user.html")
}
SG
Y
C