。。。|

_wh

园龄:6年5个月粉丝:0关注:62

identityserver4 MVC cookie问题

在mvc 客户端使用identityserver4 登录时cookie问题

出现登录成功后不跳转

在客户端和服务端的都需要配置cookie  在不是https 情况下cookie 策略问题 参考Cookie 的 SameSite 属性 - 阮一峰的网络日志 (ruanyifeng.com)

复制代码
复制代码
//ConfigureServices

services.Configure<CookiePolicyOptions>(option =>
{
  option.MinimumSameSitePolicy = SameSiteMode.Strict;
  option.Secure = CookieSecurePolicy.None;
});



//Configure
app.UseCookiePolicy();
复制代码
复制代码

回调 /singin-oidc  错误

复制代码
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
                services.AddAuthentication(options =>
                {
                    options.DefaultScheme = "Cookies";
                    options.DefaultChallengeScheme = "oidc";
                }).AddCookie(CookieAuthenticationDefaults.AuthenticationScheme)
                .AddOpenIdConnect("oidc", options =>
                {
                    options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                    options.Authority = Configuration["Id4url"].ToString();
                    options.RequireHttpsMetadata = false;
                    options.ClientId = "CMPMvc";
                    options.ClientSecret = "1QAZ2WSX3EDC-SZHK-SZ1997-SZMC-SZ1999";
                    options.SaveTokens = true;//把token 保存到cookie
                    options.ResponseType = "code";

                    //必须设置cookie signin-oidc 返回的cookie设置
                    options.CorrelationCookie.SecurePolicy = CookieSecurePolicy.None;
                    options.NonceCookie.SecurePolicy = CookieSecurePolicy.None;
                    options.CorrelationCookie.SameSite = SameSiteMode.Strict;
                    options.NonceCookie.SameSite = SameSiteMode.Strict;

                    options.AuthenticationMethod = Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectRedirectBehavior.FormPost;

                    options.Scope.Clear();
                    options.Scope.Add(OidcConstants.StandardScopes.OpenId);
                    options.Scope.Add(OidcConstants.StandardScopes.Profile);
                    options.Scope.Add("cmpapi");
                    options.Scope.Add(OidcConstants.StandardScopes.OfflineAccess);//有刷新token

                    options.GetClaimsFromUserInfoEndpoint = true;

                });
复制代码

 

遇到的问题还是因为cookie问题 openid 存cookie是的异常以及跨域问题

 

 

本文作者:_wh

本文链接:https://www.cnblogs.com/xwhqwer/p/15292523.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   _wh  阅读(320)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起