2017-04-26 82 views
0

我正在開發一個項目並且正在編寫後端。我決定將它作爲一個休息API來實現,因爲我需要編寫一個Web應用程序以及一個移動應用程序。我遇到問題了解如何登錄用戶,因爲其餘api是無狀態的。我已閱讀了一些提及每個請求或Oauth2.0的基本認證(發送登錄憑證)的材料。基本身份驗證不建議,我不明白爲什麼我應該使用Oauth2.0,因爲沒有第三方會使用我的api。我的問題是我應該如何實現登錄功能和標準是什麼?使用Api登錄

+0

您使用的是什麼版本的Laravel? – dexterb

+0

Laravel版本5.4 – khan

回答

0

您需要爲Users表添加一個唯一的api_token列。

$table->string('api_token', 60)->unique();

在Laravel 5.4,api.php保持API的路線,你需要使用一個徹頭徹尾的現成的中間件AUTH:API,這樣你就可以鑑別api_token請求。

更多 http://bootstrapdojo.com/rest-api-laravel-5-4-with-token-authentication/

+0

謝謝,但我有幾個問題。是否應該與每個需要身份驗證的請求一起發送api標記?我應該什麼時候刷新令牌?應該使用https?由於使用http似乎會導致人爲中間攻擊。 – khan

+0

@ khan是的,應該在每個請求中發送令牌來授權該請求。關於安全問題,有人可能已經回答了您的問題http://stackoverflow.com/questions/38322835/is-using-a-api-token-in-url-or-post-curl-safe – dexterb

0

我想你可以創建一個REST API,關於JSON網絡令牌提供CRUD操作。

1
  1. 添加護照包到項目中,看到這個更多信息https://laravel.com/docs/5.4/passport
  2. 創建密碼授予客戶
  3. 創建令牌
  4. 使用改造或其他包裝新用戶呼叫Laravel API

    /* prepare httpClient */ 
    httpClient.addInterceptor(new Interceptor() { 
        @Override 
        public Response intercept(Chain chain) throws IOException { 
         Request orginal = chain.request(); 
         Request.Builder builder = orginal.newBuilder(); 
         builder.addHeader("Accept", "application/json"); 
         if (tools.isAuthorized()) { 
          builder.addHeader("Authorization", "Bearer " + tools.getAccessToken()); 
         } 
         builder.method(orginal.method(), orginal.body()); 
         Request build = builder.build(); 
         return chain.proceed(build); 
        }}); 
    

    5-調用API並獲取響應,然後保存用戶令牌。