mirror of
				https://gitee.com/dromara/mayfly-go
				synced 2025-11-04 08:20:25 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			569 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			569 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package ctx
 | 
						|
 | 
						|
import (
 | 
						|
	"mayfly-go/base/biz"
 | 
						|
)
 | 
						|
 | 
						|
func init() {
 | 
						|
	BeforeHandlers = append(BeforeHandlers, new(PermissionHandler))
 | 
						|
}
 | 
						|
 | 
						|
var permissionError = biz.NewBizErrCode(501, "token error")
 | 
						|
 | 
						|
type PermissionHandler struct{}
 | 
						|
 | 
						|
func (p *PermissionHandler) Handler(rc *ReqCtx) error {
 | 
						|
	if !rc.NeedToken {
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
	tokenStr := rc.Req.Header.Get("Authorization")
 | 
						|
	if tokenStr == "" {
 | 
						|
		return permissionError
 | 
						|
	}
 | 
						|
	loginAccount, err := ParseToken(tokenStr)
 | 
						|
	if err != nil || loginAccount == nil {
 | 
						|
		return permissionError
 | 
						|
	}
 | 
						|
	rc.LoginAccount = loginAccount
 | 
						|
	return nil
 | 
						|
}
 |