私はAngularJSクライアントアプリケーションとデータベースメソッドに連絡するWebApiを持っています。私はユーザを認証するためにIdentityServer3
を持っています。 localhost:5005/core/connect/authorize?client_id=ClientA&redirect_uri=http%3A%2F%2Flocalhost%3A30005%2Fcallback&response_type=code%20id_token&scope=openid&state=94bbc0299da444468bb9cc21e5277cf1&nonce=873ea5f66fe0468faa9a362bf1a50e46"
WebAPIコントローラメソッドを使用してログインするためにIdentityServer認証メソッドを呼び出す方法
localhost:5000/Auth/Login
- IdentityServerログインでき
localhost:30005
私はWebAPIのログインコントローラメソッドを介してユーザーを認証できるか
を
public class LoginController : ApiController
{
[HttpGet]
public string Login(UserInfo user)
{
// How to implement the logic
}
}
モデル:
public class UserInfo
{
public string UserId { get; set; }
public string Password { get; set; }
}
WebAPIのスタートアップ
public class Startup
{
public void Configuration(IAppBuilder app)
{
JwtSecurityTokenHandler.InboundClaimTypeMap.Clear();
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = "localhost:5005",
RequiredScopes = new[] { "idmgr" } });
app.UseWebApi(WebApiConfig.Register());
}
}
親切にどのようWebAPIの中でのログイン方法を構築するために私を助けます。
はい...その 'https'バージョンのみ...と私は' AngularJs 1.xx'を使用しています 私の質問はこれを使って '[Authorize]' WebAPIメソッドを呼び出す方法です。 WebAPIで 'OWIN' Authを設定する必要がありますか?はいの場合、IdentityServerトークンをベアラトークンとして受け入れますか? –
はい、あなたはowinを設定する必要があり、IAppBuilderメソッドには、必要なスコープと権限(あなたのサーバーのURL)を持つ "UseIdentityServerBearerTokenAuthentication"という拡張メソッドがあります。 あなたのresponse_typeを「トークン」とし、応答トークンのタイプをベアラまたはポップにすることができる場合、IdentityServerはauthtokenを提供できます。 –
@ B.Balamanigandanでは、JWTトークンを作成する場所のコードを追加できますか? –