Session Object
GetUserID
function: API Reference
userId := session.GetUserID()
- This function does not do any database call.
GetJWTPayload
function: API Reference
jwtPayload := session.GetJWTPayload()
- This function does not do any database call.
UpdateJWTPayload
function: API Reference
session.UpdateJWTPayload(map[string]interface{}{
"key": "value",
})
- This function will change the current access token
- This function requires a database call each time it's called.
GetSessionData
function: API Reference
sessionData := session.GetSessionData()
- This function requires a database call each time it's called.
UpdateSessionData
function: API Reference
session.UpdateSessionData(map[string]interface{}{
"key": "value",
})
- This function overwrites the current session data stored for this session.
- This function requires a database call each time it's called.
RevokeSession
function: API Reference
session.RevokeSession()
- This function deletes the session from the database and clears relevant auth cookies
- If using blacklisting, this will immediately invalidate the JWT access token.
Example
import "github.com/supertokens/supertokens-go/supertokens"
http.HandleFunc("/test", supertokens.Middleware(func(w http.ResponseWriter, r *http.Request) {
session := supertokens.GetSessionFromRequest(r)
userID := session.GetUserID()
// update session info
err := session.UpdateSessionData(map[string]interface{}{
"newKey": 123,
});
if err != nil {
supertokens.HandleErrorAndRespond(err, w)
return
}
// update jwt payload
err = session.UpdateJWTPayload(map[string]interface{}{
"newKey": 123,
});
if err != nil {
supertokens.HandleErrorAndRespond(err, w)
return
}
// revoking session
err = session.RevokeSession();
if err != nil {
supertokens.HandleErrorAndRespond(err, w)
return
}
w.Write([]byte(userID))
}))
import "github.com/supertokens/supertokens-go/gin/supertokens"
r.POST("/test", supertokens.Middleware(), func(c *gin.Context) {
session := supertokens.GetSessionFromRequest(c)
userID := session.GetUserID()
// update session info
err := session.UpdateSessionData(map[string]interface{}{
"newKey": 123,
});
if err != nil {
supertokens.HandleErrorAndRespond(err, c)
return
}
// update jwt payload
err = session.UpdateJWTPayload(map[string]interface{}{
"newKey": 123,
});
if err != nil {
supertokens.HandleErrorAndRespond(err, c)
return
}
// revoking session
err = session.RevokeSession();
if err != nil {
supertokens.HandleErrorAndRespond(err, c)
return
}
c.JSON(http.StatusOK, gin.H{
"userID" : userID,
})
})