2016-09-02 5 views
2

WebアプリケーションのAPIを作成しました。今私は世界にアクセスしたいが、アクセスを与える前に、Facebook API、Twitter API、クライアントIDと秘密鍵を提供するGoogle APIのような仕組みが欲しい。現在、JWT AuthControllerを使用しています。ユーザーのログイン情報とトークンを返します。ユーザーにログインさせたくありません。laravel/lumenのクライアントIDと秘密鍵を使用してアクセスするAPI

ユーザーがクライアントIDと秘密鍵を使用して自分のAPIにアクセスできるようにしたいですか?もう一つは、それは、どのようにユーザーのためのクライアントIDと秘密鍵を作成するのですか?

これはJWT認証を使用して達成できますか?

助けが必要ですか?

+0

ここで任意のAPI開発? –

答えて

0

私は記事を読んでいると、かなりそれをされた有望な、しかし、いくつかのポストの後に、それはのOAuth2使用することを推奨しています、ここに行く:

https://laracasts.com/discuss/channels/lumen/api-authorization-via-public-and-secret-keys

引用符:

ちょうどに追加しますクラスをAPI設定に追加します。

名前空間App \ Providers \ Guard;

Dingo \ Api \ Auth \ Provider \ Authorizationを使用します。 Dingo \ Api \ Routing \ Routeを使用してください。 Illuminate \ Http \ Requestを使用します。 symfony \ Component \ HttpKernel \ Exception \ UnauthorizedHttpExceptionを使用してください。 を使用してください。

class GuardProviderは承認を延長します。{ /** *プロバイダの認証方法を取得します。 * * @returnストリング */ パブリック関数getAuthorizationMethod(){ リターン 'X-許可'; }

/** 
* Authenticate the request and return the authenticated user instance. 
* 
* @param \Illuminate\Http\Request $request 
* @param \Dingo\Api\Routing\Route $route 
* 
* @return mixed 
*/ 
public function authenticate(Request $request, Route $route) 
{ 
    $key = $request->header(env('API_AUTH_HEADER', 'X-Authorization')); 
    if (empty($key)) $key = $request->input(env('API_AUTH_HEADER', 'X-Authorization')); 
    if (empty($key)) throw new UnauthorizedHttpException('Guard', 'The supplied API KEY is missing or an invalid authorization header was sent'); 

    $user = app('db')->select("SELECT * FROM users WHERE users.key = ?", [$key]); 
    if (!$user) throw new UnauthorizedHttpException('Guard', 'The supplied API KEY is not valid'); 

    return $user; 
} } 
+0

潜在的な解決策へのリンクはいつでも歓迎しますが、[リンクの前後にコンテキストを追加](http://meta.stackexchange.com/a/8259)して、仲間のユーザーには何がわかり、そこにある理由がわかります。ターゲットサイトに到達できない場合や、永続的にオフラインになる場合は、常に重要なリンクの最も関連性の高い部分を引用してください。外部サイトへのリンク以上になることは、[なぜ、どのように答えが削除されるのか?](http://stackoverflow.com/help/deleted-answers)という理由が考えられます。 – FelixSFD

+1

非常に悪い行為ですが、私は頻繁に2つのdownvoted(私にチャンスを与えることを望んでいない)を得た悪い行動の上に、私はあなたが見ることができますようにここにいるが、今日は非常に悪い日です – justnajm

関連する問題