16.oauth2 + oidc 实现 client部分
把授权和认证过的Server启动一下先
因为代码是之前的代码,所以有些代码需要清除一下
之类注释掉,因为这里暂时没有用到EFCode了
运行的时候发现一点错误
发现登陆的时候使用的RegisterViewModel
所以这里我们也需要把之前的Email修改为UserName
启动程序
登陆就需要输入这里的用户名和密码
登陆成功,现在是在他本地,
新建客户端,把登陆的信息放到客户端内
新建一个mvc的网站
本身在asp.net core的Authentication认证模块已经内置实现了openIdConnect
所以在这个mvc网站里面不要添加任何第三方的引用,
我们唯一要做的就是在这个地方,把Authentication加进来
先添加引用,VScode的只能感知不是很好用,需要先选择一下我们的项目
在命令行 到mvcCient的项目文件夹下 ,然后运行dotnet restore。控制台的终端也需要在我们的项目下
只能感知没有调出来,直接复制完整的引用路径过来。然后切换到VS2017里面
VS2017把这两个项目加进来
mvc的客户端设置为5001启动
、
Server设置为5千来启动
服务端
原来这里加了一个Client,如果现在使用OpenIdConnect的话这里需要加一些配置
这个配置就是我们要调转的地址,正常情况下我们是存在数据里的 不是直接改代码的,在asp.net mvc中这个地址的后面的signin-oidc是固定的
这个地址会自动处理登陆的逻辑
退出返回的地址
在设置Scope
运行服务端
客户端的HomeController设置必须登陆才能访问
客户端也运行起来,客户端启动后报错
客户端把这里也改成5001
这两个地方都要改一下
启动后就成功个跳转了
跳转到 consent这样的一个页面,是要做授权的地方,我们这里没有添加,所以还需要改一个配置
这里我们把Consent设置为false,这个页面就是用于点是否允许授权的页面
再次运行客户端,因为登陆的cookie已经保存过了 ,所以应该会自动跳转回家去。
成功跳转到了5001的界面。说明我们已经登陆成功了
把这段cookie复制出来看一下
把cookie都删除掉
删除后就会跳转到登陆页面
服务端之前这里没有加上这段代码,现在加上
拿到Claims页面后,在客户端显示出来
Server端我们返回的是这些信息
因为没有添加ProfileService所以返回的信息有限。接下来会添加 对profile进行补充