59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package logic
 | |
| 
 | |
| import (
 | |
| 	"dubbo.apache.org/dubbo-go/v3/common/logger"
 | |
| 	"encoding/json"
 | |
| 	"errors"
 | |
| 	"fmt"
 | |
| 	"fonchain-fiee/pkg/model"
 | |
| 	"fonchain-fiee/pkg/utils"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	grantType    = "client_credentials"
 | |
| 	clientId     = "SjscdLEybzyxiV7lXKA5iSvZ"
 | |
| 	clientSecret = "22fCduMdCarO6WWOi4WiSmt9rIeez3FW"
 | |
| )
 | |
| 
 | |
| var accessToken string
 | |
| var expiresIn uint64
 | |
| 
 | |
| func GetImageAccessToken() (string, error) {
 | |
| 	var (
 | |
| 		resObj model.BaiduAccessToken
 | |
| 		err    error
 | |
| 		// daoAccessToken entity.AccessToken
 | |
| 	)
 | |
| 	if expiresIn == 0 || expiresIn < uint64(time.Now().Unix()) {
 | |
| 		fmt.Println(1)
 | |
| 		if resObj, err = getAccessTokenWithApi(); err != nil { //从链上获取
 | |
| 			return "", err
 | |
| 		}
 | |
| 		accessToken = resObj.Access_token
 | |
| 		expiresIn = resObj.Expires_in
 | |
| 	}
 | |
| 
 | |
| 	return accessToken, nil
 | |
| 
 | |
| }
 | |
| 
 | |
| func getAccessTokenWithApi() (model.BaiduAccessToken, error) {
 | |
| 	var (
 | |
| 		resObj model.BaiduAccessToken
 | |
| 		err    error
 | |
| 	)
 | |
| 	url := "https://aip.baidubce.com/oauth/2.0/token"
 | |
| 	urlReq := "?grant_type=" + grantType + "&client_id=" + clientId + "&client_secret=" + clientSecret
 | |
| 	res := utils.Get(url + urlReq)
 | |
| 	if err = json.Unmarshal([]byte(res), &resObj); err != nil {
 | |
| 		logger.Error("getAccessTokenWithApi json err", err)
 | |
| 		return resObj, err
 | |
| 	}
 | |
| 	if resObj.Error != "" {
 | |
| 		logger.Error("getAccessTokenWithApi err", err)
 | |
| 		return resObj, errors.New(resObj.Error_description)
 | |
| 	}
 | |
| 	return resObj, err
 | |
| }
 |