ベアラトークンを使用してバッキングAPIで認証するように設計された静的にサービスされるクライアントページであるアプリケーションを設計していますが、ソーシャル・ログイン・オプションをバックエンドに提供していますが、MVC依存性を使用しないサンプルを見つけるのは非常に困難です。ソーシャルログインとMVC依存関係のないASP.NET WebAPI 2.2 SPA
:私は基本的に私は彼がこのようなOAuthAuthorizationServerOptions.AuthorizeEndpointPath
を設定した参照質問に、同じマナーで動作するように私のプロジェクトを取得するために苦労してきたが
ASP.NET Web API social authentication for Web and Mobile
:
この質問は、始めるための大きな助けでした
[OverrideAuthentication]
[HostAuthentication(DefaultAuthenticationTypes.ExternalCookie)]
[AllowAnonymous]
[Route("ExternalLogin", Name = "ExternalLogin")]
public async Task<IHttpActionResult> GetExternalLogin(string provider, string error = null)
:彼は次のアクションを持っている彼のバッキングAPIアカウントのコントローラでも
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/account/externallogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
//AllowInsecureHttp = false
};
この例では、RouteAttribute
(テンプレート)の最初のパラメータが実際にプロジェクトで参照しているものが何であれ、この文脈で何をしているのかを説明することができたのですか?
「api/Account/ExternalLogin」にGETリクエストを送信する質問で提供されているサンプルプロジェクトを実行すると、リクエストはAPIアカウントコントローラのアクションで処理されますが、これはOverrideAuthentication
ここで私の奥深さから少しを得て、この属性の他の用途の強力な例を見つけるのに苦労しています。
しかし私は自分のWebAPIプロジェクトを彼が記述した方法で正しく構成していると確信していますが、OAuthAuthorizationServerOptions.AuthorizeEndpointPath
にGETリクエストを送信するとAPIのアカウントコントローラではなく、代わりにOAuthAuthorizationServerProvider
'invalid_request'エラーです。
APIアカウントコントローラの操作を無視して無視される可能性のあるものは誰でも考えられますか?
また、私はこの記事を読んでましたが、WebAPIの古いバージョンで書かれているようだ:任意の助け https://thompsonhomero.wordpress.com/2015/01/21/creating-a-clean-web-api-2-project-with-external-authentication-part-2/
おかげで、 アレックス。
'api/Account/ExternalLogin'へのGETリクエストを行う際にメソッドを入力できますか? –
いいえ、常に 'ApplicationOAuthProvider'によって処理されます。 –
'api/account'として宣言されているアカウントコントローラでRoutePrefixを使用していますか? Route属性では、apiアカウントコントローラメソッドの上に、ルートを '/ ExternalLogin'として宣言します。しかし、AuthorizeEndpointPath '/ api/account/externallogin'にあります。あなたがRouteprefixを使用しない場合は、AuthorizeEndpointPathのルートを '/ ExternalLogin'に変更してください –