第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Firebase:無法驗(yàn)證 MAC

Firebase:無法驗(yàn)證 MAC

Go
蕪湖不蕪 2022-01-17 10:39:47
我正在使用來自 zabawaba99 的 fireauth 和firego。將數(shù)據(jù)推送到我的 firebase 數(shù)據(jù)庫時(shí)出現(xiàn)錯(cuò)誤(請參見下文)。我一直在關(guān)注他的例子,但我無法讓它發(fā)揮作用。有人知道為什么會這樣嗎?錯(cuò)誤:2016/06/03 14:30:13 {  "error" : "Failed to validate MAC."}代碼:gen := fireauth.New("<API-KEY/SECRET>")data := fireauth.Data{"uid": "1"}token, err := gen.CreateToken(data, nil)if err != nil {    log.Fatal(err)}fb := firego.New("https://myapp.firebaseio.com" , nil)log.Println(token)fb.Auth(token)for i := 0; i<len(items); i++  {    item := items[i]    pushedItem, err := fb.Child("items").Push(items)    if err != nil {        log.Fatal(err) // error is happening here    }    var itemTest string    if err := pushedItem.Value(&itemTest); err != nil {        log.Fatal(err)    }    fmt.Printf("%s: %s\n", pusedItem, itemTest)}
查看完整描述

1 回答

?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊

不幸的是,沒有 Go 特定的文檔,但我相信,基于新文檔,舊的 REST 身份驗(yàn)證方式不再適用。話雖如此,我已經(jīng)能夠讓您的代碼工作,閱讀一堆文檔,大量試驗(yàn)和錯(cuò)誤,并通過 JWT 使用 OAuth 身份驗(yàn)證。


首先,請遵循本指南:https : //firebase.google.com/docs/server/setup,但只是“將 Firebase 添加到您的應(yīng)用程序”部分。


發(fā)出一個(gè)go get -u golang.org/x/oauth2和go get -u golang.org/x/oauth2/google(或使用您最喜歡的銷售方式)。


更改您的代碼,如下所示:


package main


import (

    "fmt"

    "io/ioutil"

    "log"


    "github.com/zabawaba99/firego"

    "golang.org/x/oauth2"

    "golang.org/x/oauth2/google"

)


func main() {

    jsonKey, err := ioutil.ReadFile("./key.json") // or path to whatever name you downloaded the JWT to

    if err != nil {

        log.Fatal(err)

    }

    conf, err := google.JWTConfigFromJSON(jsonKey, "https://www.googleapis.com/auth/userinfo.email",

    "https://www.googleapis.com/auth/firebase.database")

    if err != nil {

        log.Fatal(err)

    }


    client := conf.Client(oauth2.NoContext)


    fb := firego.New("https://myapp.firebaseio.com" , client)


    for i := 0; i<len(items); i++  {

        item := items[i]


        pushedItem, err := fb.Child("items").Push(items)

        if err != nil {

            log.Fatal(err) // error is happening here

        }


        var itemTest string

        if err := pushedItem.Value(&itemTest); err != nil {

            log.Fatal(err)

        }


        fmt.Printf("%s: %s\n", pusedItem, itemTest)


    }

}

以上對我有用!


查看完整回答
反對 回復(fù) 2022-01-17
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號