mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 23:12:25 -05:00 
			
		
		
		
	A brief note on the above change: Go does not seem to like version tagging outside of `v?[0-9\.]` formatting, so it translates `ssb-v4.5.3-1` to `v4.5.4-0.20250606121655-9d54ef189d42` and as such sees it as a "downgrade" compared to the previous `v4.9.0`. which functionally isn't a problem, everything still behaves as it should, but it means people can't just run `go get repo@latest` for this particular dependency. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4245 Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package generates
 | |
| 
 | |
| import (
 | |
| 	"bytes"
 | |
| 	"context"
 | |
| 	"encoding/base64"
 | |
| 	"strconv"
 | |
| 	"strings"
 | |
| 
 | |
| 	"code.superseriousbusiness.org/oauth2/v4"
 | |
| 	"github.com/google/uuid"
 | |
| )
 | |
| 
 | |
| // NewAccessGenerate create to generate the access token instance
 | |
| func NewAccessGenerate() *AccessGenerate {
 | |
| 	return &AccessGenerate{}
 | |
| }
 | |
| 
 | |
| // AccessGenerate generate the access token
 | |
| type AccessGenerate struct {
 | |
| }
 | |
| 
 | |
| // Token based on the UUID generated token
 | |
| func (ag *AccessGenerate) Token(ctx context.Context, data *oauth2.GenerateBasic, isGenRefresh bool) (string, string, error) {
 | |
| 	buf := bytes.NewBufferString(data.Client.GetID())
 | |
| 	buf.WriteString(data.UserID)
 | |
| 	buf.WriteString(strconv.FormatInt(data.CreateAt.UnixNano(), 10))
 | |
| 
 | |
| 	access := base64.URLEncoding.EncodeToString([]byte(uuid.NewMD5(uuid.Must(uuid.NewRandom()), buf.Bytes()).String()))
 | |
| 	access = strings.ToUpper(strings.TrimRight(access, "="))
 | |
| 	refresh := ""
 | |
| 	if isGenRefresh {
 | |
| 		refresh = base64.URLEncoding.EncodeToString([]byte(uuid.NewSHA1(uuid.Must(uuid.NewRandom()), buf.Bytes()).String()))
 | |
| 		refresh = strings.ToUpper(strings.TrimRight(refresh, "="))
 | |
| 	}
 | |
| 
 | |
| 	return access, refresh, nil
 | |
| }
 |