zoukankan      html  css  js  c++  java
  • 15.oauth2 + oidc 实现 server部分


    OAuth主要做授权。
    OpenIdConnect简历在OAuth2.0基础之上的,相结合
    客户端、授权中心、Resource Owner用户本身(资源的拥有者)、Resource Server

    通过ProfileService把Cliams转换返回给客户端

    这个代码里面已经包含了最新的登陆和注册

    启动程序



    在这个例子之上进行IdentityServer的开发。把MVC的注册和登陆变成一个单点登陆,把他的登陆信息返回给第三方

    输入IdentityServer4,添加上最新的包引用







    这时候需要一个config,创建一个config.cs的类,把之前写过的config拷贝过来


    现在是个空的

    之前代码拷贝过来,只保留一个Client

    这里我们用隐式的流程,隐式模式和授权码的模式非常像


    然后再定义ApiResource

    再定义TestUser在这个命名空间下



    claims先去掉,这里先不加

    这几个都是config内获取的


    这里还需要加IdentityResource

    所以这里需要再新建一个方法返回IdentityResource的可枚举类型

    openId、Profile、Email是IdentityServer测试的方法给我们提供的

    把它添加到config的配置里面

    最后在mvc的这里添加上IdentityServer()的中间件
    这里的UseAuthentication我们去掉了

    IdentityServer()的中间件

    这样我们就把IdentityServer添加到我们的MVC程序里了

    在Controller里面把逻辑实现

    把原来登陆的逻辑去掉。
    这里注释掉



    注册的代码全部注释掉

    这里注释

    使用SignOutAsync来替代


    改造登陆

    users注入一下

    修改这里的登陆的ViewModel,Emial修改为UserName

    登陆页面view内也要绑定为UserName



    登陆成功我们需要传一些参数过去。这样就通过IdentityServer4实现了登陆,并实现了跳转

    这样我们登陆的逻辑就实现完了







     

  • 相关阅读:
    python入门的120个基础练习
    python日志打印模块
    自动化测试总结
    Http_requests
    安装electron-ssr出现的问题
    豆瓣油猴脚本
    ubuntu 16.04 無法進入tty1-6(未解決)
    如何用firefox chrome chromium看只支持IE浏览器的视频 通过wine 安装IE
    python reverse 和reversed
    python 编码问题
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/10967495.html
Copyright © 2011-2022 走看看