微信小程序,存入session的验证码无法获取

Shiro的过滤器链,导致小程序无法用短信验证码登录,发送验证的时候,通过sessionId ,存储验证码,但是登录的时候,根据这个sessionId拿的时候,却拿不到了。但是我改了之后,我发现管理后台又登录不了了,想请教一下,应该怎么改?


/**
     * Shiro的过滤器链
     */
    @Bean
    public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager) {
        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
        shiroFilter.setSecurityManager(securityManager);
        /**
         * 默认的登陆访问url
         */
        shiroFilter.setLoginUrl("/login");
        /**
         * 登陆成功后跳转的url
         */
        shiroFilter.setSuccessUrl("/");
        /**
         * 没有权限跳转的url
         */
        shiroFilter.setUnauthorizedUrl("/global/error");

        /**
         * 覆盖默认的user拦截器(默认拦截器解决不了ajax请求 session超时的问题,若有更好的办法请及时反馈作者)
         */
        HashMap myFilters = new HashMap<>();
        myFilters.put("user", new GunsUserFilter());
        shiroFilter.setFilters(myFilters);

        /**
         * 配置shiro拦截器链
         *
         * anon  不需要认证
         * authc 需要认证
         * user  验证通过或RememberMe登录的都可以
         *
         * 当应用开启了rememberMe时,用户下次访问时可以是一个user,但不会是authc,因为authc是需要重新认证的
         *
         * 顺序从上到下,优先级依次降低
         *
         * api开头的接口,走rest api鉴权,不走shiro鉴权
         *
         */
        Map hashMap = new LinkedHashMap<>();
        for (String nonePermissionRe : Const.NONE_PERMISSION_RES) {
            hashMap.put(nonePermissionRe, "anon");
        }
        hashMap.put("/**", "user");
        shiroFilter.setFilterChainDefinitionMap(hashMap);
        return shiroFilter;
    }

/**
 * 系统常量
 *
 * @author thedreamtree
 * @date 2017年2月12日 下午9:42:53
 */
public interface Const {

    /**
     * 管理员角色的名字
     */
    String ADMIN_NAME = "administrator";

    /**
     * 管理员id
     */
    Long ADMIN_ID = 1L;

    /**
     * 超级管理员角色id
     */
    Long ADMIN_ROLE_ID = 1L;

    /**
     * 不需要权限验证的资源表达式
     */
    List<String> NONE_PERMISSION_RES = CollectionUtil.newLinkedList(
          
            "/wechatApi/**"
           );

}

为什么一定要用session呢?
你用redis不就好了,用户id作为key,然后value为短信验证码。
这样就不需要涉及其他业务代码的修改了。

我之前做的一个前后端分离的项目, 用nginx做的跨域, 登录获取验证码的时候,发生了sessionId不一致的问题, 后来我把nginx代理去掉了, 在后端统一加了允许跨域, 不知道题主是不是这个导致的。