2021-05-15 14:03:10 +00:00
|
|
|
package middleware
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/themakers/hlog"
|
2021-09-05 15:24:13 +00:00
|
|
|
"heruvym/jwt_adapter"
|
2021-05-15 14:03:10 +00:00
|
|
|
"net/http"
|
2021-09-05 15:24:13 +00:00
|
|
|
"time"
|
2021-05-15 14:03:10 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func setJwtHeader(adapter *jwt_adapter.JwtAdapter, w http.ResponseWriter, logger hlog.Logger) error {
|
|
|
|
adapter.LastSeen = jwt_adapter.Timestamp()
|
|
|
|
|
|
|
|
token, err := adapter.Encode()
|
|
|
|
if err != nil {
|
|
|
|
logger.Emit(ErrorJwtEncode{Err: err})
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
w.Header().Set(jwt_adapter.DefaultHeaderKey, token)
|
2021-09-05 15:24:13 +00:00
|
|
|
|
|
|
|
outToken, err := adapter.Encode()
|
2022-02-27 15:27:44 +00:00
|
|
|
const domain = ".fynrods.com"
|
2021-09-05 15:24:13 +00:00
|
|
|
|
|
|
|
http.SetCookie(w, &http.Cookie{
|
|
|
|
Name: jwt_adapter.DefaultHeaderKey,
|
|
|
|
Value: outToken,
|
|
|
|
Expires: time.Now().Add(time.Hour * 24 * 3),
|
|
|
|
Secure: true,
|
2022-02-27 15:27:44 +00:00
|
|
|
Domain: domain,
|
2021-09-05 15:24:13 +00:00
|
|
|
HttpOnly: true,
|
|
|
|
Path: "/",
|
|
|
|
})
|
|
|
|
|
2021-05-15 14:03:10 +00:00
|
|
|
return nil
|
|
|
|
}
|