易班接口登入代码改造与使用


本篇文章以博主思之常青 的教程与代码为参考,对其项目代码进行改造,从而达到易班登录的效果

原博文:

https://blog.csdn.net/HBBBOY/article/details/109191618?spm=1001.2014.3001.5501

1. 申请APP-ID和AppSecret

首先你得先自己申请一个应用,然后拿到这两个东西APP-IDAppSecret,否则后面发送请求是不成功的

  • 设置回调地址,这个回调地址非常重要

首先可以明确的是,这个回调地址用户不一定要去访问,但是处理数据的后端必须要去访问,如果不访问的话就无法拿到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端口等网络配置的基本配置指令

https://lumxi.github.io/2022/09/09/javaweb%E5%88%9D%E7%BA%A7%E5%BC%80%E5%8F%91%E5%85%A5%E9%97%A8/%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96(%E9%83%A8%E7%BD%B2%E7%BB%B4%E6%8A%A4%E7%AF%87)/

经过上面的部署之后,项目基本上就是可以使用的了,下面以虚拟机为模拟服务器环境进行项目的部署

如果你不嫌麻烦的话可以建一个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测一下,可以了


文章作者: 穿山甲
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 穿山甲 !
  目录