2017-05-04 25 views
0

TL; DRバージョン
私はブラウザを開いてリクエストする必要がある私のCordova AngularJS Appに状況があります。しかし、$ windowがそれらを受け入れないので、私はこの請求書にヘッダを送ることができないことを知りました。しかし私はURLでそれを送ることができます。
Web APIでURL経由で受け取ったトークンを検証するにはどうすればよいですか?Web Api 2 Owin TokenをURL経由で送信するには、どうすればよいですか?

詳細版

私はAngularJsとngCordovaを使用して、コルドバのAppを構築しています。ここ数日、私はPDFファイルをダウンロードしようとしましたが、それはユーザーのために利用可能なままにしておいたので、いつでも読むことができました。しかし、私が達成することができたのは、CordovaFileTransferを使用して(Androidダウンロードマネージャなしで)CordovaFileTransferを使用してダウンロードし、ファイルエクスプローラアプリケーション(これは従来のダウンロードフォルダ/アプリケーションには表示されなかったため)にアクセスすることでした。これについて何かを受け取って喜んでください)。

私は別のアプローチを試みることにしました。 CordovaInAppBrowserを使用すると、プラグインはヘッダをサポートしていないので、ファイルを正常にダウンロードできましたが、承認トークンがなくても正常にダウンロードできました。

URLで有効なトークンを送信できるのであれば、CordovaInAppBrowserはうまく動作します。しかし、Web Apiで手動で有効にする方法についてはわかりません。私はそれに関する情報を持っているそれらの2つのページを見つけましたが、私はそれを自分のアプリケーションで使うのには理解できませんでした。

Retrieving bearer tokens from alternative locations in Katana/OWIN
Passing the access token on the URL

誰かが正しい方向に私を指すことができますか?

答えて

1

ヘッダーまたはURLクエリ文字列からトークンを抽出する場合でも、原則は同じです。トークンを検証するために要求からデータを抽出する必要があります。

私は2つの方法を使用しましたが、これは正確に何をしたいかによって異なります。

AuthorizeAttribute、またはさらにはActionFilterAttributeをオーバーライドすることによってカスタム属性を作成することです。そこにこのトピックについてのリソースのトンがありますが、いくつかの情報herehereを見つけることができます。このアプローチは、すべてのAPIメソッドとAPIコントローラでこれをやりたくない場合に効果的です。カスタム属性は、必要な場所に置くだけです。

第2のアプローチは、カスタムOWINミドルウェアを作成することです。 Herehereあなたはこれを行う方法に関する素晴らしいリソースを見つけることができます。このアプローチは、すべてのAPI呼び出しがそれを通過するため、より集中化されています。

関連する問題