2013-12-23 196 views
1

我有一個應用程序在多個用戶系統上運行,並且使用OAuth允許用戶通過Facebook,Twitter等進行登錄。用戶登錄的全部步驟是獲取設置和通過使用相同的OAuth提供程序+提供程序用戶標識登錄時識別的同一用戶在其他計算機上登錄時執行的操作。應用程序本身是用C++編寫的。基於OAuth的身份驗證方案

我的問題是:我如何保存用戶所做的設置,並允許他們以安全的方式檢索它?我有一箇中央服務器,可以使用MySql表存儲信息,但我不確定讓用戶應用程序提示服務器並接收爲該用戶存儲的數據的最佳方式。

任何想法或地點,你可以指向我?

+0

您正在使用哪個Qt版本? – lpapp

+0

5.1。我遇到的問題不在應用程序端;我有OAuth在應用程序中正常工作。 –

回答

0

有幾種方法我能想到的這個問題,都有折衷:

一般來說,我會使用一些字符串或對象的加密/序列化方法的數據存儲在MySQL。我並不多使用Qt,但http://qt-project.org/wiki/Simple_encryption有一些可以使用的非常簡單的加密示例。

然後問題變成:你用什麼作爲鑰匙?我會使用OAuth爲該用戶提供的密鑰(如果用戶取消授權該應用,但仍希望訪問此數據可能會出現問題)或其他用戶提供的密鑰(這與第一個使用OAuth相反地點)。

另一種選擇是使用Qt用戶會話http://qt-project.org/doc/qt-4.8/qtwebkit-guide-cache.html

去這也許去除需要加密,因爲它應該只在用戶範圍內訪問。

注意:根據下面的註釋,似乎問題更多的是確保MySQL與MySQL數據的通信安全。等待用戶評論來修改我的答案。

+0

QT!= Qt。請閱讀tagwiki獲取更多信息。 – lpapp

+0

Matt,我將數據(用戶設置等)遠程存儲在一個集中的sql表中。我的問題並不是將應用程序用戶的會話信息存儲在應用程序中,而是要弄清楚如何在OAuth應用程序用戶和非OAuth服務器之間傳輸信息。 –

+0

所以你的問題是需要保護你的應用服務器和你的數據庫之間的傳輸?這讓我感到困惑,因爲這對於在物理層(防火牆)或邏輯層(SSL)中保護是非常標準的,但是您的機器始終有一個信任的概念來訪問RDBMS。 – Matt617