精华内容
下载资源
问答
  • 下面我讲一下163和qq邮箱怎么设定  国内邮箱一般都是pop3/smtp服务地址,在设置pop3服务器设置pop.163.com点下一步  然后设置smtp服务器smtp.163.com,qq邮箱要将smtp端口设成25下一步就ok...

      我们常用的163,qq 邮箱都有手机客户端,其实android手机自带一个功能很强大的邮箱。

      默认邮箱对google的gmail支持最好。下面我讲一下163和qq邮箱怎么设定

      国内邮箱一般都是pop3/smtp服务地址,在设置pop3服务器设置pop.163.com点下一步

      然后设置smtp服务器smtp.163.com,qq邮箱要将smtp端口设成25下一步就ok了。

    转载于:https://www.cnblogs.com/daviding/archive/2013/04/09/3011251.html

    展开全文
  • 要推facebook和twitter,之前我并没有搞过,以为直接过去注册个账号就好,结果周末花了一天也没搞好,只要输入手机就出现“此电话号码无法用于进行验证“,试了好几个号码都不行,也试了在手机QQ邮箱里添加gmail,...

    工作需要gmail邮箱,结果周六花了一天也没搞好,只要输入手机就出现“此电话号码无法用于进行验证“,试了好几个号码都不行,也试了在手机QQ邮箱里添加gmail,选了繁体和英语,但是到手机号验证哪一步还是不可以,没办法还是回到电脑再次试验,结果这次终于ok了,所以赶紧记录下。20210310

    先用chrom浏览器进入设置页面,点击高级选项,把语言那一栏添加为英语,把中文删除,然后再刷新几次,看看是不是浏览器已经全变成英文了

    语言设置-高级

    然后进入谷歌注册页面,填写你的资料,现在我这个页面就已经是全英文的啦,如下图所示,注意,所有的内容一律用英文

    全英文页面

     

    这样填写完资料后,就可以加手机号码收验证码了,如下图

    接受验证码

     

    收到验证码后继续填写资料,出生日期性别,这样账号就开好了

    补充资料

     

     

    展开全文
  • 网站地址:https://connect.qq.com/,添加一个应用,具体怎么申请以及需要填写的信息,腾讯官网有详细文档。注册并完成相应信息填写后,可以在应用管理中查到应用的APP ID和APP Key。(注,这个申请还是比较麻烦的,...

    实现思路

    创业初期
    归结为创业初期是因为这个时候用户量比较少,甚至还没有接入上面所说的其他第三方的账户系统,只是自建的体系就可以满足,自建体系的话,目前常用的有

    用户名密码注册登陆
    这种方式在很多初期网站建设会使用,先注册,再进行登录,在老一点的cms中都能找到这个影子。

    流程图:
    在这里插入图片描述

    流程说明:

    前端将用户名、密码发送到服务器,服务器进行常规的判断,判断用户名、密码长度是否满足,用户名是否重复等条件,条件不通过直接返回对应错误码给到前端,这里密码字段,为了防止传输过程中被截胡,建议加密再上传,我们的传输密码默认都是会进行一个md5加密,然后记录到数据库再进行一层加密,就算是脱库也没事,密码不要明文存储。

    校验通过后,就将用户名密码写入数据库,并进行后面积分发放等操作,这里不展开。

    现在进行登录,前端将用户名,密码发送给到服务端,服务端首先会校验登录次数是否超过设置的阈值,如果超过只能继续等待被关小黑屋。

    如果未超过继续登录逻辑,判断用户名、密码是否正确,不正确密码则进行阈值的判断,如果超过则关小黑屋,记住小黑屋必须设置过期时间,要不然就会永久关上了,这个可以用redis的过期来做。

    登录成功后进行后续的一切后置逻辑,比如加积分。。。等操作。

    手机号注册登陆
    流程图:

    在这里插入图片描述

    流程说明:

    首先输入手机号,然后发送到服务端,服务端将手机号记录在我们数据库中,然后生成随机验证码,并将手机号和验证码绑定到一个redis里面,然后记录过期时间,这个过期时间一般是10分钟左右,这就是我们一般手机验证码的有效期。

    手机接收到手机短信后,那么就在界面填写验证码发送服务端,服务端收到验证码后就会在redis里面查询到这个手机号对应的验证码,失败就返回错误码。

    成功后就进行登录操作。

    这里看起来没有明确的注册登录操作,其实在发送手机号码就可以认为是一个常规的注册,然后后面的验证码输入就是一个登陆操作,

    问: 那我要密码咋办?

    答: 在后续产品里面增加一个 手机号码密码补录的功能 即可,这也是现在很常规的手法,但是现在移动互联网大爆炸时代,密码已经显得不是那么重要了,反正我从来记不住密码,如果手机号码能操作的app,绝对不用密码来操作。

    数据库设计
    表结构 :

    自增id 用户名 密码 手机号 错误次数
    1 user1 7fef6171469e80d32c0559f88b377245 13456789012 0
    2 user2 7fef6171469e80d32c0559f88b377245 13456789013 0
    说明 :

    这里只是单纯说明需要用到的数据,没有扩展具体场景,这个表结构能够满足上面两个方案的设计。

    引入第三方账户方案
    这里是以QQ-SDK的登录逻辑, 我们先来一波时序图

    说明:

    客户端自己调起登录的界面,进行输入用户名、密码,这里的是第三方的用户名,密码,登录成功后,会返回access_token openid expire_in,这过程会使用到oauth2.0,不过在sdk里面进行内置回调获取了,后面我们会说明我们自身实现的oauth2.0

    客户端拿到access_token、openid、login_type(qq、wechat…)请求应用服务器,应用服务器拿到这些数据后就会根据对应的login_type去对应的用户中心进行access_token和openid进行校验。校验不通过则返回对应错误码
    校验通过后就会判断本地是否有这个login_type和openid是否存在,不存在则进行获取远程的用户名、头像等基础信息来作为本地基础数据,并且返回code值

    如果已经存在,那就是进行登录操作,返回code值。

    客户端拿到code值后进行token值的换取,这个完全遵照oauth2.0的协议来走的,后续每次请求必须带上token,token值在服务端的时间比较久,因为我们想要做的是那种永不下线的操作,所以每次请求我们都将token过期时间进行累加。

    数据库设计
    根据部分小伙伴的的建议,我这里做一下数据库的整理:


    用户基础表(users)

    字段 备注
    user_id 用户id
    token 用户登陆的token
    expire_in token过期时间
    try_times 登录失败次数


    用户验证关联表(user_auth_rel)

    字段 备注
    id 自增id
    user_id 用户id
    auth_id 验证表id
    auth_type 验证类型(local、third)


    本地用户表(user_local_auth)

    字段 备注
    auth_id 认证id,自增id
    user_name 用户唯一标识
    password 用户密码
    mobile 用户手机


    第三方用户表(user_third_auth)

    字段 备注
    auth_id 用户id
    openid 第三方用户唯一标识
    login_type 第三方平台标识(qq、wechat…)
    access_token 第三方获取的access_token,校验使用
    说明

    users表只是单纯针对我们业务侧的登录,主要是做自身业务的oauth2.0业务,
    user_local_auth是做自己用户名、密码登录,手机号码登录信息记录,
    user_third_auth是我们第三方用户体系的数据记录,
    user_auth_rel是用来关联我们users表与user_local_auth、user_third_auth。
    整个设计理念就是将自建用户与第三方在存储上区分,这在架构演进上也是合乎情理的,开始用户体系大多自建,而后才是对外接入。

    QQ登录

    QQ互联注册一个账号
    网站地址:https://connect.qq.com/,添加一个应用,具体怎么申请以及需要填写的信息,腾讯官网有详细文档。注册并完成相应信息填写后,可以在应用管理中查到应用的APP ID和APP Key。(注,这个申请还是比较麻烦的,申请了好几次,可能是脸黑吧)成功后如下图:
    在这里插入图片描述
    还需要添加一个回调地址,如下图:
    在这里插入图片描述

    加入jar包

    <!-- 第三方QQ登录 -->
    <dependency>
        <groupId>com.qq</groupId>
        <artifactId>Sdk4J</artifactId>
        <version>2</version>
    </dependency>
    

    登录页面

    <button type="submit" class="btn btn-default" onclick="qqLogin()">qq登录</button>
    function qqLogin() {
       window.open("/login/qqLogin","TencentLogin");
    }
    

    Controller编写

    package com.gbq.boot.web.controller;
    
    import cn.hutool.core.util.StrUtil;
    import com.alibaba.fastjson.JSONObject;
    import com.gbq.boot.web.bean.User;
    import com.gbq.boot.web.comment.qqLoginComment.AuthComment;
    import com.gbq.boot.web.service.UserService;
    import org.springframework.web.bind.annotation.*;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.support.RedirectAttributes;
    
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletResponse;
    
    
    /**
     * 登录Controller
     */
    @RestController
    @RequestMapping("/login")
    public class LoginController {
    
        @Resource
        private UserService userService;
        @Resource
        private AuthComment authComment;
    
    
        @RequestMapping("/index")
        public ModelAndView index(@ModelAttribute("user") User user) {
            return new ModelAndView("/shop/index","user",user);
        }
    
    
        @RequestMapping("/login.html")
        public ModelAndView toLogin() {
            return new ModelAndView("login");
        }
    
        @RequestMapping("/qqLogin")
        public void qqLogin(HttpServletResponse response)throws Exception{
            //随机产生字符串
            String state = StrUtil.uuid();
            String url = authComment.getAuthUrl(state);
            System.out.println(url);
            //重定向
            response.sendRedirect(url);
        }
    
    
        @GetMapping("/redirect")
        public ModelAndView getData(@RequestParam(value = "code") String code, RedirectAttributes model){
    
            //获取token
            String accessToken = authComment.getAccessToken(code);
            System.out.println("accessToken"+accessToken);
    
            //获取openId
            String openId = authComment.getOpenId(accessToken);
            System.out.println("openId"+openId);
    
            //获取用户信息
            JSONObject userInfo = authComment.getUserInfo(accessToken, openId);
            String myName = userInfo.getString("nickname");
            User user = new User(null, "","111111",myName, System.currentTimeMillis(),"是",
                    userInfo.getString("figureurl_2"), userInfo.getString("gender")
                    ,1,1,"", "", openId);
    
            //通过openId查询
            User usr = userService.findUsrByOpenId(openId);
            if (null != usr){
                user.setId(usr.getId());
                userService.updateById(user);
            }else {
                userService.insert(user);
            }
            model.addFlashAttribute("user", user);
           //重定向
            return new ModelAndView("redirect:/login/index");
        }
    
    
    }
    

    AuthComment类编写

    package com.gbq.boot.web.comment.qqLoginComment;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import org.springframework.stereotype.Component;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import static org.apache.commons.io.IOUtils.toByteArray;
    
    @Component
    public class AuthComment {
    
        //QQ 登陆页面的URL
        private final static String AUTHORIZATION_URL =
                "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=%s&redirect_uri=%s&scope=%s";
        //获取token的URL
        private final static String ACCESS_TOKEN_URL = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=%s&client_secret=%s&code=%s&redirect_uri=%s";
        // 获取用户 openid 的 URL
        private static final String OPEN_ID_URL = "https://graph.qq.com/oauth2.0/me?access_token=%s";
        // 获取用户信息的 URL,oauth_consumer_key 为 apiKey
        private static final String USER_INFO_URL = "https://graph.qq.com/user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s";
        // 下面的属性可以通过配置读取
        // QQ 在登陆成功后回调的 URL,这个 URL 必须在 QQ 互联里填写过
        private static final String CALLBACK_URL = "http://127.0.0.1:8080/login/redirect";
        // QQ 互联应用管理中心的 APP ID
        private static final String APP_ID = "你的id";
        // QQ 互联应用管理中心的 APP Key
        private static final String APP_SECRET = "你的key";
    
    
        /**
         * QQ 登陆页面的URL
         * @param scope
         * @return
         */
        public String getAuthUrl(String scope) {
            return String.format(AUTHORIZATION_URL, APP_ID, CALLBACK_URL, scope);
        }
    
        /**
         * 获取Access Token值
         */
        public String getAccessToken(String code){
            String ur = String.format(ACCESS_TOKEN_URL, APP_ID, APP_SECRET,code, CALLBACK_URL);
            String compile = "access_token=(\\w*)&";
            String result = this.getUrl(ur);
            return this.getMatcher(result,compile);
        }
    
        /**
         * 获取openId
         * @param accessToken
         * @return
         */
        public String getOpenId(String accessToken) {
            String url = String.format(OPEN_ID_URL, accessToken);
            String compile = "openid\":\"(\\w*)\"";
            String result = this.getUrl(url);
            return this.getMatcher(result,compile);
        }
    
        /**
         * 获取qq用户信息
         * @param accessToken
         * @param openId
         * @return
         */
        public JSONObject getUserInfo(String accessToken, String openId) {
            String url = String.format(USER_INFO_URL, accessToken, APP_ID, openId);
            String result = this.getUrl(url);
            return JSON.parseObject(result);
        }
    
        private String getMatcher(String result,String compile) {
            //使用正则表达式解析网址
            Pattern p = Pattern.compile(compile);
            Matcher m = p.matcher(result);
            m.find();
            return m.group(1);
        }
    
        //解析url
        private String getUrl(String ur) {
            try {
                URL url = new URL(ur);
                HttpURLConnection conn = null;
                conn = (HttpURLConnection) url.openConnection();
                conn.setConnectTimeout(5 * 1000);
                conn.setRequestMethod("GET");
                InputStream inStream = conn.getInputStream();
                byte[] data = toByteArray(inStream);
                String result = new String(data, "UTF-8");
                System.out.println(result);
                return result;
            } catch (IOException e) {
                e.printStackTrace();
            }
            return  null;
        }
    
    }
    

    此处不再编写userService

    成功会返回json串
    在这里插入图片描述

    其中主要需要的是,nickname——qq名称,figureurl_qq_x——不同尺寸的qq头像,等等等等!

    登录成功跳转到页面
    在这里插入图片描述

    成功后的页面index

    注意我使用的是freemarker模板,给大家贴上freemarker配置,已经mvc配置

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>freemarker:
      template-loader-path: classpath:/templates/
      # 是否启用模板缓存。
      suffix: .ftl
      cache: false
      # 模板编码。
      charset: UTF-8
      # 是否检查模板位置是否存在。
      check-template-location: true
      content-type: text/html
      #是否启用freemarker
      enabled: true
    
    mvc:
      view:
        prefix: /templates/
        suffix: .html
      static-path-pattern: /static/**
    

    总结

    总的来讲,第三方用户的接入技术上来讲是比较简单的,这里设计多一个user_thirds是可以支持足够多的第三方接入,当然一般我们也就两三个登录就好,太多登录方不仅自身维护成本,界面摆盘也不好看不是。

    希望大家能够通过以上学习,能够对于我们多账户登录有一个比较好的认知,这里设计方案不包含分表分库、没有服务化,就是简单直接的设计,当然用户量和需要的不一样,在这个基础上还要加很多东西,谢谢大家阅读

    展开全文
  • 网站地址:https://connect.qq.com/,添加一个应用,具体怎么申请以及需要填写的信息,腾讯官网有详细文档。注册并完成相应信息填写后,可以在应用管理中查到应用的APP ID和APP Key。(注,这个申请还是比较麻烦的,...

    点击关注 👉 云析学院 今天

     

    点击上方“蓝字”关注我们,每天点亮一个技能点。

     

     

    # QQ互联注册一个账号

     

    网站地址:https://connect.qq.com/,添加一个应用,具体怎么申请以及需要填写的信息,腾讯官网有详细文档。注册并完成相应信息填写后,可以在应用管理中查到应用的APP ID和APP Key。(注,这个申请还是比较麻烦的,申请了好几次,可能是脸黑吧)成功后如下图:

     

    还需要添加一个回调地址,如下图:

    加入jar包

    •  
    •  
    •  
    •  
    •  
    •  
    <!-- 第三方QQ登录 --><dependency>    <groupId>com.qq</groupId>    <artifactId>Sdk4J</artifactId>    <version>2</version></dependency>
    
     

    登录页面

    
     
    •  
    •  
    •  
    •  
    <button type="submit" class="btn btn-default" onclick="qqLogin()">qq登录</button>function qqLogin() {   window.open("/login/qqLogin","TencentLogin");}
    
     

     

    Controller编写

    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    package com.gbq.boot.web.controller;
    import cn.hutool.core.util.StrUtil;import com.alibaba.fastjson.JSONObject;import com.gbq.boot.web.bean.User;import com.gbq.boot.web.comment.qqLoginComment.AuthComment;import com.gbq.boot.web.service.UserService;import org.springframework.web.bind.annotation.*;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.support.RedirectAttributes;
    import javax.annotation.Resource;import javax.servlet.http.HttpServletResponse;
    
    /** * 登录Controller * @author 阿前 * 2019年1月4日09:48:21 */@RestController@RequestMapping("/login")public class LoginController {
        @Resource    private UserService userService;    @Resource    private AuthComment authComment;
    
        @RequestMapping("/index")    public ModelAndView index(@ModelAttribute("user") User user) {        return new ModelAndView("/shop/index","user",user);    }
    
        @RequestMapping("/login.html")    public ModelAndView toLogin() {        return new ModelAndView("login");    }
        @RequestMapping("/qqLogin")    public void qqLogin(HttpServletResponse response)throws Exception{        //随机产生字符串        String state = StrUtil.uuid();        String url = authComment.getAuthUrl(state);        System.out.println(url);        //重定向        response.sendRedirect(url);    }
    
        @GetMapping("/redirect")    public ModelAndView getData(@RequestParam(value = "code") String code, RedirectAttributes model){
            //获取token        String accessToken = authComment.getAccessToken(code);        System.out.println("accessToken"+accessToken);
            //获取openId        String openId = authComment.getOpenId(accessToken);        System.out.println("openId"+openId);
            //获取用户信息        JSONObject userInfo = authComment.getUserInfo(accessToken, openId);        String myName = userInfo.getString("nickname");        User user = new User(null, "","111111",myName, System.currentTimeMillis(),"是",                userInfo.getString("figureurl_2"), userInfo.getString("gender")                ,1,1,"", "", openId);
            //通过openId查询        User usr = userService.findUsrByOpenId(openId);        if (null != usr){            user.setId(usr.getId());            userService.updateById(user);        }else {            userService.insert(user);        }        model.addFlashAttribute("user", user);       //重定向        return new ModelAndView("redirect:/login/index");    }
    
    }
    
     

    AuthComment类编写

    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    package com.gbq.boot.web.comment.qqLoginComment;
    import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.springframework.stereotype.Component;
    import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.regex.Matcher;import java.util.regex.Pattern;
    import static org.apache.commons.io.IOUtils.toByteArray;
    @Componentpublic class AuthComment {
        //QQ 登陆页面的URL    private final static String AUTHORIZATION_URL =            "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=%s&redirect_uri=%s&scope=%s";    //获取token的URL    private final static String ACCESS_TOKEN_URL = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=%s&client_secret=%s&code=%s&redirect_uri=%s";    // 获取用户 openid 的 URL    private static final String OPEN_ID_URL = "https://graph.qq.com/oauth2.0/me?access_token=%s";    // 获取用户信息的 URL,oauth_consumer_key 为 apiKey    private static final String USER_INFO_URL = "https://graph.qq.com/user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s";    // 下面的属性可以通过配置读取    // QQ 在登陆成功后回调的 URL,这个 URL 必须在 QQ 互联里填写过    private static final String CALLBACK_URL = "http://127.0.0.1:8080/login/redirect";    // QQ 互联应用管理中心的 APP ID    private static final String APP_ID = "你的id";    // QQ 互联应用管理中心的 APP Key    private static final String APP_SECRET = "你的key";
    
        /**     * QQ 登陆页面的URL     * @param scope     * @return     */    public String getAuthUrl(String scope) {        return String.format(AUTHORIZATION_URL, APP_ID, CALLBACK_URL, scope);    }
        /**     * 获取Access Token值     */    public String getAccessToken(String code){        String ur = String.format(ACCESS_TOKEN_URL, APP_ID, APP_SECRET,code, CALLBACK_URL);        String compile = "access_token=(\\w*)&";        String result = this.getUrl(ur);        return this.getMatcher(result,compile);    }
        /**     * 获取openId     * @param accessToken     * @return     */    public String getOpenId(String accessToken) {        String url = String.format(OPEN_ID_URL, accessToken);        String compile = "openid\":\"(\\w*)\"";        String result = this.getUrl(url);        return this.getMatcher(result,compile);    }
        /**     * 获取qq用户信息     * @param accessToken     * @param openId     * @return     */    public JSONObject getUserInfo(String accessToken, String openId) {        String url = String.format(USER_INFO_URL, accessToken, APP_ID, openId);        String result = this.getUrl(url);        return JSON.parseObject(result);    }
        private String getMatcher(String result,String compile) {        //使用正则表达式解析网址        Pattern p = Pattern.compile(compile);        Matcher m = p.matcher(result);        m.find();        return m.group(1);    }
        //解析url    private String getUrl(String ur) {        try {            URL url = new URL(ur);            HttpURLConnection conn = null;            conn = (HttpURLConnection) url.openConnection();            conn.setConnectTimeout(5 * 1000);            conn.setRequestMethod("GET");            InputStream inStream = conn.getInputStream();            byte[] data = toByteArray(inStream);            String result = new String(data, "UTF-8");            System.out.println(result);            return result;        } catch (IOException e) {            e.printStackTrace();        }        return  null;    }
    }
    
     

    此处不再编写userService

     

    成功会返回json串

     

     

    其中主要需要的是,nickname——qq名称,figureurl_qq_x——不同尺寸的qq头像,等等等等!

     

    登录成功跳转到页面

     

     

     

    成功后的页面index

    •  
    <span>欢迎你,${user.name}</span>

     

    freemarker配置

     

    注意我使用的是freemarker模板,给大家贴上freemarker配置,已经mvc配置

    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-freemarker</artifactId></dependency>freemarker:  template-loader-path: classpath:/templates/  # 是否启用模板缓存。  suffix: .ftl  cache: false  # 模板编码。  charset: UTF-8  # 是否检查模板位置是否存在。  check-template-location: true  content-type: text/html  #是否启用freemarker  enabled: true
    mvc:  view:    prefix: /templates/    suffix: .html  static-path-pattern: /static/**

    至此全文结束。欢迎点赞转发支持一波~~~

    来源:uidaima.com/blog/4725615031700480.htm

     

    自考本科进不了大厂都是谣言?4轮面试,4个小时,轻松拿下了美团offer,面经呈上

    阿里P7好友说,要想成为Java大佬,就得要多逛逛国外的这几个技术网站...

    IDEA 2020.2 神器,又发布了!

    选型必看:RabbitMQ 七战 Kafka,差异立现

     

     

    Java直播课程

    展开全文
  • 微信本身是属于封闭式的一个社交网络,无法查找,只能通过账号搜索,附近的人,通讯录,或者是群添加,跟他人沟通发信息也只能通过加好友这些方式,相比之下QQ在这方面做的就要宽松很多,社交功能花样迭出,今天聪少...
  • 首先添加一个QQ账号添加完成后回到本页面,点击你的QQ号码进入任务列表,在任务列表里可以添加秒赞、秒评、自动说说、QQ机器人等QQ挂机服务。 以后要经常来此页面更新失效的SID&SKEY。 【关于不能赞与秒评说明】...
  • iPhone手机忘记了ID账号密码怎么办

    千次阅读 2019-07-20 12:23:29
    苹果手机ID解锁联系QQ:【919775904】【如果使用手机QQ添加好友,请加第一个QQ以下均为冒充】成功率高达100%,解开以后.再支付尾款,解不开全额退回,生意是小做人是大,诚信为本,凭实力办事,给我们一份信任,还你10分...
  • java实现qq登录。

    2019-12-25 16:55:02
    网站地址:https://connect.qq.com/,添加一个应用,具体怎么申请以及需要填写的信息,腾讯官网有详细文档。注册并完成相应信息填写后,可以在应用管理中查到应用的APP ID和APP Key。(注,这个申请还是比较麻烦的,...
  • <input type="text" name="firstname" class="text" value="QQ账号/绑定QQ号的邮箱" onfocus="if(this.value=='QQ账号/绑定QQ号的邮箱'){this.value='';}" onblur="if(this.value==''){this.value='QQ账号/绑定QQ号...
  • 但是在码云上配置却报 公钥 已经被使用 (SSH Key 不允许重复添加) 指纹 已经被使用 那么怎么来解决呢 可以看官网文档 重新生成   https://gitee.com/profile/sshkeys ssh-keygen -t rsa -C "******@...
  • 相信最近很多人在使用电脑注册google账号验证手机号码的时候都会遇到“此电话号码无法用于进行验证”的问题。下面小编为大家分享一个简单可行的注册方法。 方法 / 步骤 在电脑官网上注册账号验证手机号码时显示是...
  • 接着腾讯针对此事件做出了声明,表示QQ确实存在读取浏览器历史,但是用来判断用户登录安全风险的情况,检测账号是否安全,且数据没有上传到云端、没有存储、没有做大数据、也没有做其他用途。 至于添加代码的作用
  • 一.方法种类 具体网站有很多比如:百度统计,CNZZ,51啦,腾讯分析,这几个是当下最...2.立即添加站点,获取得到浏览量的js代码,放入到自己的网站项目里面; 2.1 你可以使用外链式,但是你后台可能用到h...
  • 说我是学生账号,需要注销,并让我添加对方QQ以进一步联系。 后来百度了一下关键字“京东金融注销”,跳出来一大堆是诈骗的搜索结果。 于是首先去京东金融app的官方客服验证了下。点击“我的客服”,输入“京东金融...
  • // QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看) final String smtpPort = "465"; props.setProperty("mail.smtp.port", smtpPort); props.setProperty("mail.smtp....
  • String s = "姓名:" + name + "性别:" + sex + "年龄:" + age + "电话:" + "QQ:" + QQ + "地址:" + address; return s; } } public static void main(String[] args) { Z phoneNumberTest...
  • 类似于QQ这样的聊天工具,我们注册了账号添加了好友,好友信息都在服务器,一旦登录了该账号,我们便可以到服务器把相关的信息拿下来,但是我们的飞鸽传书和飞秋是没有服务器的,那怎么拿到好友列表呢?...
  • 我们来讲讲怎么快速搭建这么一个公众号吧。 首先我们需要的材料: 1.登录自己的微信公众号(已经注册好的,直接登录自己公众号即可) 步骤一:进入注册公众号官网,直接百度搜索微信公众号平台或者点击下面链接 ...
  • 输入法快捷短语

    2019-05-15 16:48:24
    输入法是生活中比较常用的工具,搜狗输入法怎么设置快捷语呢?现在就让我来和大家分享一下搜狗的输入法快捷短语如何设置吧! 首先是下载个搜狗输入法 方法 1 先点中搜狗输入法然后右击,点击个人中心,用自己的QQ...
  • GitHub探索

    2016-02-22 17:03:00
    然后让核实邮件,我用的163邮箱,怎么都收不到邮件,resend了很多次都是白瞎,网上都说用qq邮箱秒收,我就换了个qq邮箱又注册一次,果然秒收 注册了之后看了一个那个叫 Hello Word 的tutorial,然后跟着这个guide...
  • 参考文档 ...可以在上传签名中添加sourceContext参数(例如用户的账号信息),上传完成回调将返回该字段值,以此把用户和视频信息对应起来 FR:徐海涛(hunk xu) QQ技术交流群:386476712 ...
  • (1)在团队协作中,代码怎么合并,QQ发过去 (2)刚发过去的文件,我稍微改了一下,重新发吧,,, (3)项目有多个模块(登录、列表、添加、删除、修改),一个人做一个模块, 对数据库的操作,大家都是编辑同一个...
  • 6.怎么打开没有自动保存账号? 答:解压软件才能自动保存登录状态和设置等信息。 其它技巧: 直接关闭程序会自动保存登录状态哦,直接打开就是上次登录的状态。 程序可以最小化到托盘,不耽误其它工作,双击或右击就...
  • 可以使用,假条的申请注销都没有问题,包括ajax的调用都很好用,学生信息里的下拉列表是个问题,解决了这个问题也让我想通了聊天室应该怎么用ajax,很巧妙,也就是多级的下拉列表的互动传值问题,其他的信息添加和...
  • eg+wpe+ccp

    2013-11-14 09:14:42
    举些例子:之前的传奇刷钱,用自己账号登入别人人物,复制,改攻击 去年被WPE刷倒闭的QQ飞行岛(本人实现过复制,刷宠物,刷经验。要什么有什么连还没出的东西都刷出来),腾迅所有游戏,劲舞团等等。。 都有WPE的...
  • 如图所示,这是软件的登录界面,用户可以输入网易账号进行登录,也可以使用微博、QQ账号快速登录。 登录之后进入软件,如图所示,这是软件的主界面,用户可以点击左上角的新建按钮撰写新的笔记,也可以点击其他...
  • 大河生活网 7.1.rar

    2019-05-24 05:35:23
    程序后台带采集功能,可自动采集文章、图片、软件等信息,频道、栏目自行添加修改删除、自定义增加频道显示字段。可设置绑定二级域名,整站支持伪静态和生成静态html功能。支持多级管理权限控制,多级管理权限设置。...
  • 4、分类管理中增加网站链接会员的QQ栏目,便于直接查看用户QQ 5、分类管理独立出网站链接的标色、置顶功能,方便收费会员管理! 程序说明: 1、用户可以自由添加各类信息、无任何其他功能限制。 2、模块化的程序...
  • 企业建站源码 v5.11.zip

    2019-07-05 01:24:14
    更多问题请致电QQ:529131638   简要安装说明 1、上传至虚拟主机[根目录]。 2、若上传至虚拟主机根目录则要修改文件(特别注意修改 网站配置中 网站地址 域名 “/” 如 ...
  •  将图片标签放在窗体底层面板,然后将窗体转化为JPan的容器,将JPan设为透明,背景图片就设置好了,之后就可以直接在该JPan中添加组件* package com.bluerabbit.librarysystem.view; import java.awt.Font; import...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

qq怎么添加账号