2012-03-02 28 views
0

我正在爲Opera寫一個擴展,它將使用Twitter OAuth API。我知道這是令人不悅的,但我在擴展中使用JavaScript實現了Twitter OAuth。請耐心等待,因爲我不是任何使用OAuth的職業。如何使用通過Javascript獲得的OAuth訪問令牌用PHP進行身份驗證

但這是我想要做的。用戶通過Twitter進行身份驗證後,我會將訪問令牌存儲在localStorage中,其中小部件.preferences對象可用於Opera擴展。以下是我現在不確定的部分。在擴展中,人們可以發表評論。評論將從擴展中發佈到服務器上的腳本中,該腳本將處理並將評論插入到數據庫中的表中。

我現在想知道的事情是,我怎麼能確定發表評論的人的用戶名是發佈評論並在我的擴展中用Twitter登錄的用戶的真實用戶名?

如果我剛剛從擴展發送的用戶名,這將是非常容易操縱只是用戶名的要求,導致了假的用戶名被插入到該註釋數據庫。

我可以把用戶從發佈擴展註釋的訪問令牌,該服務器將與註釋數據接收它。在將註釋插入數據庫之前,我可以使用Javascript擴展發送的訪問令牌來使用PHP檢索該訪問令牌所代表的用戶的Twitter用戶名嗎?或者訪問令牌是每次用戶進行身份驗證時隨機創建的,因此不能像這樣重用?

回答

0

OAuth Echo是通過API來驗證身份的Twitter的標準方式。

的基本流程是:

  1. 拓簽署的賬戶/ verify_credentials請求,但它並不asend到Twitter。
  2. 擴展將簽名的請求發送到服務器。
  3. 服務器向Twitter發送請求。如果成功並返回screen_name,那麼您知道它是誰。
+0

非常好,我想這就是我想要的!我如何簽名,但不向Twitter發送請求?我正在使用[jsOAuth](https://github.com/bytespider/jsOAuth)庫。我應該使用setAccessToken()方法嗎?或者甚至更好,你知道一篇清楚地表明這種技術的文章嗎? – alpenglow 2012-03-03 06:47:51

+0

我從來沒有使用jsOAuth,所以我無法幫助很多,但它看起來像[toSignatureBaseString](https://github.com/bytespider/jsOAuth/blob/master/src/OAuth/Consumer.js#L417)將生成簽名簽名。 – abraham 2012-03-03 15:17:52

+0

toSignatureBaseString只會創建簽名基本字符串。但是,請將該字符串與祕密一起發送到OAuth.signatureMethod [「HMAC-SHA1」]方法,並且應該完成。您大概可以跳過訪問令牌。 – 2012-03-04 06:57:57

相關問題