mirror of
				https://github.com/mickael-kerjean/filestash.git
				synced 2025-10-31 01:58:11 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			924 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			924 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package plg_handler_mcp
 | |
| 
 | |
| import (
 | |
| 	"strings"
 | |
| 	"time"
 | |
| 
 | |
| 	. "github.com/mickael-kerjean/filestash/server/common"
 | |
| 	. "github.com/mickael-kerjean/filestash/server/plugin/plg_handler_mcp/types"
 | |
| )
 | |
| 
 | |
| func (this *Server) RemoveSession(userSession *UserSession) {
 | |
| 	this.expired.Store(Hash(userSession.Token, 16), nil)
 | |
| 	this.sessions.Delete(userSession.Id)
 | |
| }
 | |
| 
 | |
| func (this *Server) ValidateToken(token string) string {
 | |
| 	if hasToken := strings.HasPrefix(token, "Bearer "); hasToken == false {
 | |
| 		return ""
 | |
| 	}
 | |
| 	token = strings.TrimPrefix(token, "Bearer ")
 | |
| 	if _, ok := this.expired.Load(Hash(token, 16)); ok {
 | |
| 		return ""
 | |
| 	}
 | |
| 	return token
 | |
| }
 | |
| 
 | |
| func (this *Server) GetSession(uuid string) UserSession {
 | |
| 	ch, _ := this.sessions.LoadOrStore(uuid, UserSession{
 | |
| 		Id:      uuid,
 | |
| 		Chan:    make(chan JSONRPCRequest),
 | |
| 		CurrDir: "/",
 | |
| 		HomeDir: "/",
 | |
| 		Ping: Ping{
 | |
| 			ID:           0,
 | |
| 			LastResponse: time.Now(),
 | |
| 		},
 | |
| 	})
 | |
| 	return ch.(UserSession)
 | |
| }
 | 
