美文网首页
Spring Security oauth2 认证

Spring Security oauth2 认证

作者: 寂静的春天1988 | 来源:发表于2020-07-28 17:04 被阅读0次
    image.png

    使用session和cookie的方式,有以上几个缺点。

    1、更改demo项目的依赖改为app

    2、启动项目demo项目,根据报错挪一些代码

    3、@EnableAuthorizationServer开启认证服务器

    @Configuration
    @EnableAuthorizationServer
    public class FuiouAuthorizationServerConfig {
        
    }
    

    Spring Security已经替我们把oauth2的4中授权模式实现了,接下来试试看。

    授权码模式

    1、访问/oauth/authorize 获取用户授权,得到授权码
    需要几个参数:response_type,client_id,redirect_uri,scope

    security.oauth2.client.client-id= fuiou
    security.oauth2.client.client-secret= fuiousecret
    

    http://127.0.0.1/oauth/authorize?response_type=code&client_id=fuiou&redirect_uri=/index.html&scope=all

    2、访问后会弹出一个用户名和密码的窗口,输入用户在自己业务系统中的用户名和密码,会跳转到了一个报403的页面。
    用户角色中必须有一个ROLE_USER

    return new SocialUser(userName, password,true,true,true,true,AuthorityUtils.commaSeparatedStringToAuthorityList("admin,ROLE_USER")); 
    

    3、再次访问跳转到了用户授权的页面


    image.png

    4、同意授权,会跳转到redirect_uri,并携带着授权码
    http://127.0.0.1/index.html?code=WcdnYl

    5、用授权码去获取token

    image.png image.png

    密码模式

    1、获取token


    image.png
    image.png

    开启资源服务器

    package com.fuiou.security.app;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
    
    @Configuration
    @EnableResourceServer
    public class FuiouResourceServerConfig {
    
    }
    

    携带token访问接口

    image.png

    自定义认证

    除了4种模式外还需要自定义认证,如手机号加短信验证码认证获取token。

    image.png

    相关文章

      网友评论

          本文标题:Spring Security oauth2 认证

          本文链接:https://www.haomeiwen.com/subject/jdttrktx.html