リフレッシュトークンフローをテストするとき、UseOpenIddictメソッド(この場合)のカスタムキーを指定するオーバーロードされたシグネチャを使用すると、次のエラーが発生します。OpenIddict - カスタムキーを使用すると、リフレッシュトークンフローによってエンティティエラーが発生する
InvalidOperationException:エンティティタイプ 'OpenIddictAuthorization'が見つかりませんでした。エンティティタイプがモデルに追加されていることを確認します。
私は、主キーとしてintを使用するオーバーロードされたメソッドを使用しない場合は、正しく動作し、私はリフレッシュトークンを受け取ることです。私がこのエラーを受け取った過負荷を使用するときだけです。ここで
が起動
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddDbContext<RouteManagerContext>(options =>
{
options.UseSqlServer(AppSettings.RouteManagerContext);
options.UseOpenIddict<int>();
});
services.AddIdentity<ApplicationUser, ApplicationRole>().AddEntityFrameworkStores<RouteManagerContext>().AddDefaultTokenProviders();
services.Configure<IdentityOptions>(options =>
{
options.ClaimsIdentity.UserNameClaimType = OpenIdConnectConstants.Claims.Name;
options.ClaimsIdentity.UserIdClaimType = OpenIdConnectConstants.Claims.Subject;
options.ClaimsIdentity.RoleClaimType = OpenIdConnectConstants.Claims.Role;
});
services.AddOpenIddict(options =>
{
options.AddEntityFrameworkCoreStores<RouteManagerContext>();
options.AddMvcBinders();
options.EnableTokenEndpoint("/connect/token");
options.AllowPasswordFlow()
.AllowRefreshTokenFlow()
.SetAccessTokenLifetime(TimeSpan.FromMinutes(1))
.SetRefreshTokenLifetime(TimeSpan.FromMinutes(20160))
options.DisableHttpsRequirement();
});
services.AddAuthentication()
.AddOAuthValidation()
.AddFacebook(o => { o.ClientId = AppSettings.FacebookAppID; o.ClientSecret = AppSettings.FacebookAppSecret; });
services.AddDocumentation(AppSettings);
}
、ここでのコンテキスト宣言は私のコンテキストが
public class RouteManagerContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>
{
public RouteManagerContext(DbContextOptions<RouteManagerContext> options) : base(options) { }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
であるアプリケーションは、私はニーズをopeniddict、データベース内のすべてのテーブルを持っているように正しく設定されているようです。アプリケーション、承認、トークンなど...
すべての例は同じように構成されているようです。 アイデア
ありがとうございました...私は、その定義をAddOpenIddictメソッドで一致させなければならなかったことに気付きませんでした。今は完璧に動作します。 – Geekn