2017-04-26 20 views
0

私はプロジェクトに取り組んでおり、現在バックエンドを書いています。私はWebアプリとモバイルアプリを書く必要があるので、残りのAPIとして実装することに決めました。私は残りのAPIがステートレスなので、私はどのようにユーザーにログインするのかを理解している問題を抱えています。私は、各要求またはOauth2.0で基本認証(ログイン資格情報の送信)について述べた資料を読んでいます。基本認証は推奨されていません。なぜ私は、サードパーティが自分のAPIを使用しないため、Oauth2.0を使用すべきか理解していません。私の質問は、どのように私はログイン機能を実装する必要があり、何が標準ですか?ログインApiを使用して

+0

Laravelのどのバージョンをお使いですか? – dexterb

+0

Laravel version 5.4 – khan

答えて

0

Usersテーブルに一意のapi_token列を追加する必要があります。 Laravel 5.4で

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

api.phpはあなたがすぐにミドルウェア認証を使用する必要があります、APIのルートを保持している:あなたはapi_tokenで要求を認証することができますので、APIを。

私はあなたがJSONウェブトークンにCRUD操作を提供していますREST APIを作成することができますね 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

続きを読みます。

1
  1. トークン
  2. 使用の改造や

    Laravel APIを呼び出すために別のパッケージを使用して新しいユーザーを作成
  3. パスワードグラントクライアントを作成詳細はこれを参照https://laravel.com/docs/5.4/passport
  4. 、プロジェクトにパスポートのパッケージを追加
    /* 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を呼び出して応答を取得し、ユーザートークンを保存します。

関連する問題