鉴权验证唯一登录

  1. HTTP Basic Authentication
  2. session-cookie
  3. Token 验证
  4. OAuth(开放授权)

认证过程:

HTTP Basic Authentication

   这种授权方式是浏览器遵守http协议实现的基本授权方式,HTTP协议进行通信的过程中,HTTP协议定义了基本认证认证允许HTTP服务器对客户端进行用户身份证的方法

 1. 客户端向服务器请求数据,请求的内容可能是一个网页或者是一个ajax异步请求,此时,

      假设客户端尚未被验证,则客户端提供如下请求至服务器:

  Get /index.html HTTP/1.0

  Host:www.google.com

  2. 服务器向客户端发送验证请求代码401,(WWW-Authenticate: Basic realm=”google.com”这            句话是关键,如果没有客户端不会弹出用户名和密码输入界面)服务器返回的数据大抵

        如下:

  HTTP/1.0 401 Unauthorised

  Server: SokEvo/1.0

  WWW-Authenticate: Basic realm=”google.com”

  Content-Type: text/html

  Content-Length: xxx

  3. 当符合http1.0或1.1规范的客户端(如IE,FIREFOX)收到401返回值时,将自动弹出一个登          录窗口,要求用户输入用户名和密码。

  4. 用户输入用户名和密码后,将用户名及密码以BASE64加密方式加密,并将密文放入前一条            请求信息中,则客户端发送的第一条请求信息则变成如下内容:

  Get /index.html HTTP/1.0

  Host:www.google.com

  Authorization: Basic d2FuZzp3YW5n

注:d2FuZzp3YW5n表示加密后的用户名及密码(用户名:密码 然后通过base64加密,加密过程是浏览器默认的行为,不需要我们人为加密,我们只需要输入用户名密码即可)

  5. 服务器收到上述请求信息后,将Authorization字段后的用户信息取出、解密,将解密后的用户名及密码与用户数据库进行比较验证,如用户名及密码正确,服务器则根据请求,将所请求资源发送给客户端

使用基于 Token 的身份验证方法,大概的流程是这样的:

  1. 客户端使用用户名跟密码请求登录

  2. 服务端收到请求,去验证用户名与密码

  3. 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端

  4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里

  5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token

  6. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回       请求的数据

总的来说:

就是客户端在首次登陆以后,服务端再次接收http请求的时候,就只认token了,请求只要每次把token带上就行了,服务器端会拦截所有的请求,然后校验token的合法性,合法就放行,不合法就返回401(鉴权失败)

你可能感兴趣的:(java)