2016-10-29 70 views
0

我一直在尋找某種方式來在客戶端的genereta令牌。但我真的被困在這裏,我試圖做一些休息API來做一些互聯網事情,我已經看到他們如何使用其他平臺的身份驗證方法,但真的不抓住它們,所以我一直在尋找智威湯遜但是爲了這個目的,這是很長的。這是其他平臺上的一些令牌的示例,它們具有一個Api密鑰,您可以在其中生成令牌以執行通訊對象http請求。 這裏是生成的令牌的例子:用於驗證休息api的令牌類型

4YjYQOqR8MRjRIamTqy2LSQYsscNHO 

而另一令牌:

sub-c-bd2c3600-9e31-11e6-9194-0619f8945a4f 

而且JWT令牌的例子:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImRpZWdvLm1heW9yZ2E4NkBnbWFpbC5jb20iLCJyb2xlIjpbIlVzZXIiXSwiaWQiOiI1ODExMmRkZjFkMzRhOTZiOGIxY2MwODAiLCJpYXQiOjE0Nzc3NzkyMTV9.bD62WQv_Q16tegZDejuDS435LOn1awGyh20Npi7166w 

好了,所以我想用JWT在用戶使用該平臺時使用localStorage或cookie或會話,以及來自智能手機和arduino等不同設備的http請求,使用bcrypt以便用戶可以生成隨機令牌來自API密鑰。

我正在嘗試做一個REST API,後端我正在做nodejs,特別是hapijs框架和前端我會用React或Angular做。

回答

0

很難提供一個很好的解決方案,而不需要關於手頭問題的更多信息。這種情況下的客戶是什麼?如果您正在構建某種類型的網站(站點/應用程序),那麼代碼將暴露給用戶,這是一個很大的安全問題。如果這是發生在獨立編譯應用程序中的事情,如果沒有原始源用於生成在客戶端上運行的二進制文件,用戶將無法訪問,那麼您只需選擇具有明確反轉的代; jwt,rsa,aes,des等都是現代加密算法的例子。 JWT由3部分組成[token = encodeBase64(header)+'。' + encodeBase64(有效載荷)+'。' + encodeBase64(簽名)],並可以有一個任意大小的json有效載荷,這使得它們有點大,但是如果你希望令牌繼續傳遞更多的真值或假值(這是最有可能的情況下)。如果您正在與外部資源進行交互,我建議您在用戶無法訪問的單獨服務上生成這些令牌。

+0

在前端將是Angular或React以及一些在android或arduino中的應用。 – diego