具体查看gitee代码:
4.保护WPF客户端
这种是有用户参与的,使用的是Grant (用名名密码)这种授权方式 。
1.流程
【二.客户端凭据的认证方式】运行的顺序和字母的顺序是一致的:
所以在这个过程之中,即对用户进行身份认证,也对浏览器进行身份认证 。
具体操作看代码吧 。我也没用过MVC
2.为MVC刷新 token
使用Token 刷新Token 。
1.在MVC 客户端进行设置
new Client{ClientId = "mvc client",ClientName = "ASP.NET Core MVC Client", // 随便写AllowedGrantTypes = GrantTypes.CodeAndClientCredentials,//允许两种授权方式.ClientSecrets = { new Secret("mvc secret".Sha256()) },//密码.//下边都是固定的地址 。RedirectUris = { "http://localhost:5002/signin-oidc" },FrontChannelLogoutUri = "http://localhost:5002/signout-oidc",PostLogoutRedirectUris = { "http://localhost:5002/signout-callback-oidc" },AlwaysIncludeUserClaimsInIdToken = true,AllowOfflineAccess = true, // offline_access//默认是一个小时 。现在改成 60s。AccessTokenLifetime = 60, // 60 secondsAllowedScopes ={"api1",IdentityServerConstants.StandardScopes.OpenId,IdentityServerConstants.StandardScopes.Email,IdentityServerConstants.StandardScopes.Address,IdentityServerConstants.StandardScopes.Phone,IdentityServerConstants.StandardScopes.Profile}},
但是仅仅这样设置,过了一分钟以后,进入 MVC ,依然还能得到 API 的相关信息。这是因为我们的 API 没有设置对于 对于token检验 。
2.对受保护的 API进行设置
services.AddAuthentication("Bearer")//bearer 的授权方式 。.AddJwtBearer("Bearer", options =>{options.Authority = "https://localhost:5000";options.RequireHttpsMetadata = http://www.kingceram.com/post/false;//不需要httpsoptions.TokenValidationParameters = newTokenValidationParameters{ValidateAudience = false};//每隔一分钟,验证一次这个tokenoptions.TokenValidationParameters.RequireExpirationTime = true;//必须要有超时时间这个参数 。options.TokenValidationParameters.ClockSkew = TimeSpan.FromMinutes(1);});
3.刷新 Token
在 MVC 的控制器里面,再添加一个,用来刷新 Token 。
//刷新 tokenprivate async Task
- 八年纪物理 初二停表怎么看,怎么看机械停表
- 义乌第二富豪也凉了,义乌千万富翁到底有多少?
- 不二法门
- 你知道人体的十二大极限吗? 吉尼斯记录举重极限
- 二十四节气背诵口诀是什么 二十四节气口诀是什么
- 新冠“二次阳”来袭,八款营养汤要常喝,强免疫抗病毒,老少皆宜 吉尼斯记录鸡蛋汤
- 二 ConcurrentHashMap源码深度解析(java8)——直呼Dou
- 中国5个最有特色的摩天轮第四个独一无二第五个世界最高 中国之最摩天轮
- 徐静雨:现役中库里排第二杜兰特只能排第三,这排名非常不严谨 徐静雨各个位置历史之最
- 火影忍者十大瞳术排行榜:轮墓·边狱只能排第二 世界十大瞳术