問題タブ [bearer-token]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
12707 参照

c# - ASP.NET WebAPI でベアラー トークンを取得する

認証が有効になっている Web API (ベアラー トークン) があります。これはクライアント アプリケーションによって呼び出され、匿名の使用から保護したいので、単一のユーザーを作成し、そのベアラー トークンを作成したいと考えています。

registerメソッドとtokenメソッドを呼び出すことでトークンを作成できますが、これをコードから行いたいと考えています。

  1. 私の知る限り、ベアラートークンはデータベースに保存されていません。ASP.NET Identity API を使用して何らかの方法で取得できますか?

  2. また、データベースを複数のサーバーにデプロイする必要があるため、このユーザーをコードから作成し、トークンをどこかに保存したいと考えています。

0 投票する
1 に答える
325 参照

asp.net-mvc - How to handle invalid bearer tokens

I have an ASP.NET MVC website and a Web API 2 project.

I use a bearer token that I store in the identity claims to identify a user on the API.

It works but I noticed that when I use a different server for the API, all the tokens are invalid.

I'm confused about what to do when a token is invalid (because it's a different server or because it's expired).

How are we supposed to handle that?

For the expired token, I guess I could store the expiration date and ask for a new token or implement the OAuth2 Refresh Tokens. But for the other scenario, I don't know what to do.

Thank you

0 投票する
3 に答える
6519 参照

dependency-injection - OAuthAuthorizationServerProvider の実装における Autofac 依存性注入

Web Api アプリケーションを作成しており、ユーザー認証にベアラー トークンを使用したいと考えています。この投稿に従って、トークンロジックを実装しましたが、すべて正常に動作しているようです。注: ASP.NET ID プロバイダーは使用していません。代わりに、カスタム User エンティティとそのサービスを作成しました。

これは SimpleAuthorizationServerProvider クラスの私の実装です

/token URL を呼び出した後、次のエラーが表示されます。

「AutofacWebRequest」に一致するタグを持つスコープは、インスタンスが要求されたスコープからは見えません。これは通常、HTTP ごとのリクエストとして登録されたコンポーネントが、SingleInstance() コンポーネント (または同様のシナリオ) によってリクエストされていることを示します。Web 統合では、常に DependencyResolver.Current または ILifetimeScopeProvider.RequestLifetime から依存関係をリクエストし、コンテナー自体からは決してリクエストしません。

このクラス内で依存性注入を使用する方法はありますか? リポジトリ パターンを使用してエンティティにアクセスしているため、オブジェクト コンテキストの新しいインスタンスを作成することはお勧めできません。これを行う正しい方法は何ですか?

0 投票する
1 に答える
405 参照

ruby-on-rails - レール上の twitter gem の場合、効率的に user_timeline を呼び出して複数のユーザーのツイートを取得するにはどうすればよいですか?

Railsコントローラーには、「@」記号のない10個のTwitterハンドルを持つ「usernames」という配列があります。これらのユーザーの最新のツイートを、次の割り当てを使用して「つぶやき」という配列に保存しています。

$client_local は次のとおりです。

ruby ベンチマーク モジュールを使用したところ、"tweets" 割り当ての実行に 2.5 秒かかっていることがわかりました。user_timeline 関数が 10 回呼び出され、10 個の個別の接続が作成されるため、非常に時間がかかっていると思います。

解決策を探して、構成オプションについて sferik の githubにアクセスしました。このページの説明によると、「bearer tokan」が必要なようです。

client.user("sferik")

注: このメソッドを初めて呼び出すと、2 つの API リクエストが作成されます。まず、リクエストを実行するためのアクセス トークンを取得します。次に、要求されたユーザーをフェッチします。アクセストークンは、同じクライアントで行われる後続のリクエストのためにキャッシュされますが、アクセストークンを一度手動でフェッチし、クライアントを初期化するときにそれを使用して、毎回 2 つのリクエストを行うことを避けることができます。

client.bearer_token

このトークンは期限切れになることはなく、無効にされない限り変更されません。ベアラー トークンを取得したら、それを使用してクライアントを初期化し、余分なリクエストを行わないようにすることができます。

  1. アプリのベアラー トークンが見つからないか、取得方法がわかりません
  2. これが私の問題の解決策である場合、または探しているものが他にある場合、私は 100% ではありません。

アイデア?

オンラインで検索すると、私の Twitter アカウントでこれらのユーザーのリストを作成することを提案し、「リスト/ステータス」へのリクエストを行っている人がいます。「usernames」配列内の 10 個のユーザー名は、配列が設定されるたびに異なるため、これはオプションではありません。

0 投票する
3 に答える
6052 参照

asp.net-mvc - MVC API で Microsoft Azure Active Directory を使用して OAuth 2.0 ベアラー トークンを認証するときの 401

MVC (ビューなし、API のみ) で API サービスを作成しており、client_credentials フロー(2-legged OAuth)を介して取得した OAuth 2.0 トークンを使用したいと考えています。Azure 管理ポータルで ActiveDirectory アプリを作成し、ベアラー トークンを正常に取得しました(下部の Postman のスクリーンショットを参照)。

次に、Microsoft.Owin.Security.ActiveDirectorynuget パッケージをインストールし、Owin スタートアップ クラスを作成して、次のコードを記述しました。

アクションを含むコントローラーを追加しました。ベアラー トークンを使用してアクションにアクセスできるようにしたいと考えています。

これはコントローラーです:

次のような Authorization ヘッダーで呼び出そうとしています。

呼び出しエンドポイント

ただし、401:「このディレクトリまたはページを表示する権限がありません」というメッセージが表示されます。詳細は次のとおりです。

ベアラー トークンが無視されているようです。

私は何を間違っていますか?


付録: client_credentials フローを使用して、Postman で Azure Active Directory OAuth ベアラー トークンを作成します。

Postman でのトークンの作成

0 投票する
2 に答える
18914 参照

asp.net - Web API に ajax リクエストを送信するときに 401 Unauthorized

私はこれで2日間頭を悩ませてきました。WebAPI バージョン 2.2 を使用しており、CORS を使用しています。このセットアップはサーバー側で機能します。Web クライアント サーバー コードから承認されたコンテンツを取得することは許可されていますが、ajax 呼び出しでは承認されていません。

これが私の構成です:

Web API 構成

WebApiConfig:

Startup.Auth.cs:

(私は app.UseCors(CorsOptions.AllowAll) と config.EnableCors() のすべての組み合わせを試しました)

私のコントローラー属性:

ウェブクライアント

Ajax 呼び出し:

クッキーの作成:

そして最後になりましたが、私のヘッダーです。

開発者ツールとフィドラーは、リクエストで Cookie が送信されなかったと主張しています。

0 投票する
3 に答える
49317 参照

c# - WebApi で OAuth Bearer Tokens Generation と Owin を使用してクライアントに詳細情報を返す

WebApi と Cordova アプリケーションを作成しました。Cordova アプリケーションと WebAPI 間の通信に HTTP リクエストを使用しています。WebAPI では、OAuth Bearer Token Generation を実装しました。

これはSimpleAuthorizationServerProvider実装内にあります

Cordova アプリから API へのログイン要求が成功した後、次の JSON を受け取ります

問題は、ユーザーに関する詳細情報が必要なことです。たとえば、データベースに UserGuid フィールドがあり、ログインが成功したときにそれを Cordova アプリに送信し、後で他の要求で使用したいと考えています。"access_token", "token_type"と以外の情報を含めてクライアントに返すことはできます"expires_in"か? そうでない場合、に基づいて API でユーザーを取得するにはどうすればよいaccess_tokenですか?


編集:

回避策を見つけたと思います。内部に次のコードを追加しましたGrantResourceOwnerCredentials

その後、次のようにコントローラー内の GUID にアクセスします。User.Identity.Name

カスタム名でGUIDを追加することもできますidentity.AddClaim(new Claim("guid", user.UserGuid.ToString()));

ベアラー トークンの JSON を使用して、より多くのデータをクライアントに返す方法があるかどうかを知りたいと思っています。