0
OAuthトークンの承認が途絶えています。私はOAuthを設定しており、自分のOAuthサーバプロバイダを持っています。許可属性によるOAuthベアラトークンの検証
構成コード:
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AuthorizeEndpointPath = new PathString("/authorize"),
AccessTokenExpireTimeSpan = TimeSpan.FromHours(1),
Provider = new SimpleAuthorizationServerProvider()
};
app.UseOAuthAuthorizationServer(OAuthServerOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
Serverプロバイダ:
public class SimpleAuthorizationServerProvider : OAuthAuthorizationServerProvider
{
public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
context.Validated();
}
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
using (AuthRepository _repo = new AuthRepository())
{
IdentityUser user = await _repo.FindUser(context.UserName, context.Password);
if (user == null)
{
context.SetError("invalid_grant", "The user name or password is incorrect.");
return;
}
}
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
identity.AddClaim(new Claim("sub", context.UserName));
identity.AddClaim(new Claim("role", "user"));
context.Validated(identity);
}
}
私が送信しています:OAuthのトークンエンドポイント"localhost/token"
にgrand_type=password, username=MyUserName, password=MyPassword
が、それがうまく私のOAuthベアラートークンを作成しています。しかし、ここからは、この生成されたトークンをどのように使用するか、格納されている場所(入手方法)、およびASP.NET MVCコントローラの[Authorize]
属性を使用して成功の検証を行う方法はわかりません。私は、ただ一つのビューから別のビューに行くときに、[Authorize]
という属性を持つ、生成されたトークンを使い、それを正常に通過させたいだけです。どのように私はこれを達成することができますか?
あなたは、あなたが生成されたリフレッシュトークンのクッキーを作成することができ、これは、複数のビュー経由でアクセスすることができ、あなたのアクセストークンが1のために有効であることを覚えています1時間ごとに新しいアクセストークンを生成する必要があります – SoftwareNerd