2016-02-13 29 views
1

我有一個iOS應用,我已經使用Google SDK登錄用戶。此時我有一個訪問令牌。用戶可以拍攝視頻並將其發佈到YouTube。我想在Node.js express服務器上調用API,並使用該API(使用令牌)使用YouTube API發佈視頻。我看到有幾種潛在的選擇,但我真的不知道我的情況是正確的。通過Node.js代表用戶發佈到YouTube服務器

是否可以這樣做,還是必須從服務器端顯示Google授權頁面?正如你所看到的,可能對整個事情感到困惑。

回答

0

我構建了一個支持Google Sign-In的Parse集成的iOS應用程序。我們在客戶端(iOS端)對用戶進行了身份驗證,並在客戶端和服務器上存儲了身份驗證和刷新令牌。一旦獲得用戶的認證令牌,服務器就可以代表該用戶發出請求沒問題。您只需確保在令牌到期時刷新令牌,並保持客戶端和服務器上的令牌彼此同步。

我們使用iOS版本的Google Sign-In SDK的舊版本,因此在的authorizeRequest:completionHandler:上調用nil請求會在客戶端自動刷新令牌。使用新的SDK,它應該是類似的東西,或者您可以在服務器端使用刷新令牌進行手動Web請求以獲得新的身份驗證令牌。

你可以看到關於這個實現的相關討論here

流量可能是這個樣子:

  1. 讓您的用戶登錄到與谷歌應用程序。在登錄回調中,您應該獲得訪問令牌,刷新令牌和令牌到期日期。將這些值保存到後端的用戶模型中。

  2. 如果用戶需要從您的應用程序向任何Google API請求,請通過Google的幫助程序方法進行操作。您還可以設置標準NSURLSession請求,將bearer令牌值設置爲授權令牌。如果您需要從後端代表用戶發出API請求,請以同樣的方式發出異步請求,請將用戶的身份驗證令牌添加到bearer標題字段。

  3. 如果您需要刷新客戶端上的令牌,則SDK中的signInSilenty方法應爲您執行此操作。如果您需要在服務器端刷新令牌,請按照「使用刷新令牌」下的Using OAuth 2.0 for Web Server Applications中列出的步驟操作。刷新令牌後,將新值保存到用戶模型中。

+0

我假設你不必使用Parse來做到這一點,對嗎?你碰巧有一些你可以分享的完整代碼嗎? – uomolupo

+0

@uomolupo不,不需要解析,它只是我使用的後端示例。我不認爲示例代碼在這裏會有幫助,但我已經編輯了我的答案,以概述用戶流如何進一步深入。 – JAL

+0

真棒謝謝! – uomolupo

相關問題