本篇文章以博主思之常青 的教程与代码为参考,对其项目代码进行改造,从而达到易班登录的效果
原博文:
https://blog.csdn.net/HBBBOY/article/details/109191618?spm=1001.2014.3001.5501
1. 申请APP-ID和AppSecret
首先你得先自己申请一个应用,然后拿到这两个东西APP-ID
和AppSecret
,否则后面发送请求是不成功的
- 设置回调地址,这个回调地址非常重要
首先可以明确的是,这个回调地址用户不一定要去访问,但是处理数据的后端必须要去访问,如果不访问的话就无法拿到token,回调技术可以参考javaweb中的request.getRequestDispatcher()
方法,它可以从一个请求处理方法中携带参数跳转到其他请求处理方法
请求转发(forward)
:一种在服务器内部的资源跳转方式,简单来说就是当一个请求,单个资源所不能完全处理的时候,这个请求就会被转发到其他资源,让其他资源来完成这个请求的响应。
req.getRequestDispatcher("资源B路径").forward(req,resp);
- 请求转发资源间共享数据:使用Request对象
void setAttribute(String name,Object o)
:存储数据到request域中Object getAttribute(String name)
:根据key值获取值void removeAttribute(String name)
:根据key,删除该键值对
- 请求转发的特点
- 浏览器地址栏路径不发生变化
- 只能转发到当前服务器内部的资源
- 一次请求,可以在转发的资源间使用request共享数据
所以我们的思路就是,用户从前端发送password和username过来,然后我们后端先做md5加密,加密完之后,请求第一次登录接口,校验账密,无误后携带code,调用易班的API完成认证。至于token和生成的user对象该如何使用,请开发应用的人员自行查阅API文档。
2. 下载项目到本地
https://github.com/ALL-AC/YiBanLogin.git
这个是大哥项目的地址,把它下下来,然后开始修改代码
3. 修改请求参数
首先先把回调地址给改了
上面那个被注释的了url应该是部署在服务器上的url,由于这里我是在本地测试,因此用的是localhost
,如果你有服务器的话,把127.0.0.1:8087
换成你的服务器地址:端口
就可以了
记得把appid和appsec也填进去哈
到此的话其实项目的改造就已经完成了,但是如果你的项目用的是java8的版本,会出现javax.net.ssl.SSLHandshakeException
4. 异常处理方法
首先先找到你这个项目所用的jdk地址,如下图路径,找到java.security
打开它,Ctrl+F搜索SSLv3
,定位到这一行,然后把前三项删掉,剩下这三项,保存,然后启动项目
发送请求,可以看到请求成功了
5. Linux部署教程
如果之前没有用过linux的,可以先了解一些基本知识,关于jdk的安装以及linux的基本使用可以看下我之前写的博客,本教程需要用到的知识点
- vim的基本操作
- Linux下jdk的安装与使用
- 远程连接工具使用
- Maven项目的生命周期
- ip端口等网络配置的基本配置指令
经过上面的部署之后,项目基本上就是可以使用的了,下面以虚拟机为模拟服务器环境进行项目的部署
如果你不嫌麻烦的话可以建一个git仓库,然后写shell脚本进行部署,但是对于这样一个小项目而言的话没有必要(如果你的后端体量不是很大的话)
,下面我使用的是手工部署项目的方法
5.1 修改服务器地址
首先先输入ifconfig
查看虚拟机地址
然后修改回调地址(注意,官网的应用设置也要修改哈)
,我的服务器地址这里是192.168.132.128
,端口自己定,只要别给占用就行
server:
port: 8087
ssl:
enabled: false
tomcat:
max-http-form-post-size: -1
app:
appid: "efec027353670aff"
appsec: "bd675aa47d899eaacbdde3e95f7f8c19"
# backurl: "https://isevergreen.xyz:8087/login/auth"
backurl: "http://192.168.132.128:8087/login/auth"
5.2 Maven项目打包
先对项目进行打包,然后打开控制台,查看打包后的文件位置
记住这个文件的位置,待会把它传到linux上
5.3 开放端口以及修改jdk配置
我之前选的访问端口是8087,然后在服务器上把它开放出来,输入以下指令
firewall-cmd --zone=public --add-port=8087/tcp --permanent
#开放8080端口
firewall-cmd --reload
#生效重启
然后修改jdk的配置文件
根据自己的jdk安装目录,找到该目录,修改secruity文件vim java.secruity
命令行模式下输入/SSLv3
,快速定位,修改那这行代码,或者你:644
回车也可以快速定位到这一行
5.4 上传项目
输入rz
,将刚才的jar包上传上去,或者使用远程连接工具的上传功能也行
5.5 运行测试
直接java -jar login-0.0.1-SNAPSHOT.jar
,运行,如果没报错的话就是成功了,用postman测一下,可以了