2013-09-25 109 views
4

我正在使用Google OAuth2 Javascript庫向用戶請求訪問令牌。我想將令牌存儲在服務器上的數據庫中。如何使用Google OAuth2 Javascript庫獲取刷新令牌?

爲了能夠在令牌過期後訪問該用戶的數據,我還需要存儲刷新令牌。我知道如何在使用服務器端Google OAuth2庫(指定access_type = offline)時執行此操作,但我需要能夠使用客戶端Javascript庫執行此操作,但它不起作用。

回答

8

你做不是想要在客戶端存儲刷新令牌!這將類似於存儲他的用戶名和密碼。

Javascript客戶端不支持type = offline,因爲這會暴露刷新標記。

你的選擇是: -

  1. 生成和刷新令牌存儲在服務器上
  2. 讓你的客戶端只需保留請求訪問令牌,因爲它需要他們。設置爲immediate=true因此與用戶沒有可見的交互
+0

因此,無法從客戶端生成訪問和刷新令牌並將它們發送到服務器上進行存儲?我試圖這樣做的原因是用戶在進行身份驗證時與客戶端應用程序(Ember)進行交互,而不是與服務器端應用程序進行交互,因此我無法在服務器上生成令牌。這有意義嗎? – cwarny

+1

訪問令牌和刷新令牌是不同的。用戶可以在客戶端上生成訪問令牌。他無法生成刷新令牌。除了客戶端之外,在服務器上進行身份驗證並不是特別困難。我的應用程序在服務器上執行初始授權和刷新令牌處理。一旦用戶被認證,服務器就會提供javascript應用程序。 JavaScript應用程序然後獨立於服務器進行自己的訪問令牌處理。 – pinoyyid

+0

這是正確的。這就是我最終做的。 – cwarny