diff --git a/server/server.go b/server/server.go index a8642ec..ed4aa83 100644 --- a/server/server.go +++ b/server/server.go @@ -503,6 +503,26 @@ func (s *Server) HandleTokenRequest(w http.ResponseWriter, r *http.Request) (err return } +// HandleTokenRequestWithDuration token request handling with personal time.Duration +func (s *Server) HandleTokenRequestWithDuration(w http.ResponseWriter, r *http.Request, duration time.Duration) (err error) { + gt, tgr, verr := s.ValidationTokenRequest(r) + if verr != nil { + err = s.tokenError(w, verr) + return + } + + tgr.AccessTokenExp = duration + + ti, verr := s.GetAccessToken(gt, tgr) + if verr != nil { + err = s.tokenError(w, verr) + return + } + + err = s.token(w, s.GetTokenData(ti), nil) + return +} + // GetErrorData get error response data func (s *Server) GetErrorData(err error) (data map[string]interface{}, statusCode int, header http.Header) { re := new(errors.Response)