- 需要开放可登陆权限
@Overrideprotected void configure(HttpSecurity http) throws Exception {http.logout().permitAll();http.requestMatchers().anyRequest().and().authorizeRequests()// 使用authenticated才可以使用授权登录模式。 "/users/**".antMatchers("/oauth/**","/login","/oauth/authorize","/oauth/check_token").permitAll()// 刷新令牌可用.and().httpBasic()// refresh_token时需要携带,忘记了.and().csrf().and().formLogin()
// .loginPage("/login-view")
// .loginProcessingUrl("/login").permitAll().disable();}
这里使用的是eureka和getway网关
配置如下
让/oauth/authorize地址直接指向oauth服务,并保留请求路径,否则在获取授权的页面会报错找不到
- id: service-authuri: lb://service-authpredicates:- Path=/auth/**filters:- StripPrefix=1- id: service-authuri: lb://service-authpredicates:- Path=/oauth/authorizefilters:- PreserveHostHeader
- 数据库或内存中需添加返回路径,并且权限中有authorization_code
- 请求
// 你自己的请求地址,auth为getway网关转发
http://localhost:8102/auth/oauth/authorize?response_type=code&client_id=client
5. 添加权限
如果未登陆则回跳出登陆弹出框,登陆完成后出现授权页,点击授权即可,这里已经授权过了,找不到页面了
7. 得到授权码
8. 获取token
http://localhost:8102/auth/oauth/token?grant_type=authorization_code&code=Qf0Mee&client_id=client&client_secret=123456&scope=all
最后,有看不懂的同学可以留言,我会在有空的时候完善一下