func GetOauthToken(uid int, clientID string) (oauthToken string, err error) { token, err := dao.QueryTokenByUidClientID(uid, clientID) if err != nil && err != pgpub.ErrNotExist { return } if err != pgpub.ErrNotExist && time.Now().Unix() > token.Expires { err = dao.DeleteToken(token.OauthToken) if err != nil { return } } oauthToken = token.OauthToken if err == pgpub.ErrNotExist || time.Now().Unix() > token.Expires { newToken := dao.PGToken{ OauthToken: genOauthToken(uid), ClientId: clientID, Expires: time.Now().Add(7 * 24 * time.Hour).Unix(), Uid: uid, } err = dao.CreateToken(&newToken) if err != nil { return } oauthToken = newToken.OauthToken } return }
func RefreshOauthToken(uid int, clientID string, oldOauthToken string) (oauthToken string, err error) { token, err := dao.QueryToken(oldOauthToken) if err != nil { return } if token.OauthToken == "" { err = fmt.Errorf("%v not exists", oldOauthToken) return } err = dao.DeleteToken(token.OauthToken) if err != nil { return } return GetOauthToken(uid, clientID) }