A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

4.2.2 redis连接配置
在认证服务的application.yml文件中添加如下配置:
[mw_shl_code=applescript,true]spring:   application:  
   name: xc‐service‐ucenter‐auth
  redis:   
  host: ${REDIS_HOST:127.0.0.1}
    port: ${REDIS_PORT:6379}   
  timeout: 5000 #连接超时 毫秒  
   jedis:   
    pool:   
     maxActive: 3     
    maxIdle: 3   
     minIdle: 1     
    maxWait: ‐1 #连接池最大等行时间 ‐1没有限制
[/mw_shl_code]
4.2.3 测试
[mw_shl_code=applescript,true]@SpringBootTest @RunWith(SpringRunner.class) public class RedisTest {   
@Autowired   
  private StringRedisTemplate stringRedisTemplate;  
   @Test
    public void testRedis(){   
     //定义key  
       String key = "user_token:9734b68f‐cf5e‐456f‐9bd6‐df578c711390";   
      //定义Map   
     Map<String,String> mapValue = new HashMap<>();   
      mapValue.put("id","101");     
    mapValue.put("username","itcast");   
      String value = JSON.toJSONString(mapValue);   
     //向redis中存储字符串   
     stringRedisTemplate.boundValueOps(key).set(value,60, TimeUnit.SECONDS);   
      //读取过期时间,已过期返回‐2      
  Long expire = stringRedisTemplate.getExpire(key);   
      //根据key获取value      
   String s = stringRedisTemplate.opsForValue().get(key);   
      System.out.println(s);
    } }
[/mw_shl_code]
4.3.1 需求分析
认证服务需要实现的功能如下:
1、登录接口
前端post提交账号、密码等,用户身份校验通过,生成令牌,并将令牌存储到redis。 将令牌写入cookie。
2、退出接口
校验当前用户的身份为合法并且为已登录状态。
将令牌从redis删除。
删除cookie中的令牌。  
业务流程如下:


4.3.2 Api接口
[mw_shl_code=applescript,true]@Api(value = "用户认证",description = "用户认证接口") public interface AuthControllerApi {   
    @ApiOperation("登录")   
public LoginResult login(LoginRequest loginRequest);   
   @ApiOperation("退出")  
   public ResponseResult logout();   }[/mw_shl_code]
4.3.3 配置参数
在application.yml中配置参数

[mw_shl_code=applescript,true]auth:  
tokenValiditySeconds: 1200  
#token存储到redis的过期时间
  clientId: XcWebApp
  clientSecret: XcWebApp
  cookieDomain: localhost  
cookieMaxAge: ‐1[/mw_shl_code]


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马