实现用户登录方式

实现用户登录方式

其实实现用户登录的方式由很多种,但是其实不管哪种登录方式,目的都是安全!下面就简单的介绍下几种方式

1、直接通过表单的形式,post请求过去,过程如下所示
实现用户登录方式

2、一样通过表单的形式提交,但是密码用MD5进行加密,然后进行传输,这样会更加的安全
实现用户登录方式

3、还是表单形式提交,不过在对密码MD5加密前先去拼接一个字符串,然后再进行MD5加密
实现用户登录方式

4、第三方登录-oAuth授权

oAuth(Open Authorization)授权为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是oAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,所以oAuth是安全的。

实现用户登录方式

比如说用户要请求登录

(1) 用户打开第三方客户端的时候,第三方客户端要请求用户的授权。
(2)用户同意给予第三方客户端授权。
(3)第三方客户端使用上一步获得的授权,向QQ服务器申请访问令牌。
(4)QQ服务器对第三方Web进行认证以后,确认无误之后,会下发访问令牌。
(5)第三方客户端使用访问令牌,向QQ资源服务器申请获取资源。
(6)QQ资源服务器确认令牌无误之后,会向第三方客户端去发放资源。

4、扫码方式登录,下面介绍的是在微信手机客户端扫码登录网页版微信的例子

比如说扫描一个二维码,这个二维码其实就是一段文本的编码,我们在微信扫描这个二维码就会去跳转到相应的界面,我用新浪微博扫描这个二维码得到的是

https://login.weixin.qq.com/l/IYJzJSzuhQ==

实现用户登录方式

大致过程其实就是

  • 用户去访问微信网页版,微信服务器为这个会话(session)生成一个全局唯一的 ID,上面的 URL 中 IYJzJSzuhQ==就是这个 ID,这个时候其实系统是不知道访问者是谁的,所以就需要我们通过微信进行扫一扫

  • 当用户打开自己的手机微信后去扫描了这个二维码,就会提示用户是否确认登录

  • 当用户点击确认登录后,手机上的微信客户端就会将微信账号和这个扫描得到的URL中的ID会一起提交到服务器

  • 服务器就会将这个ID和用户的微信号绑定在一起,并会通知网页版的微信,这个ID对应的微信号为这个用户,网页版微信就会去加载这个用户的微信信息

5、目前CSDN采用了微信授权登录

目前CSDN可以采用授权微信授权登录,我记得是先进行了微信账号和CSDN的账号的绑定,在设置里面就可以看到,CSDN是利用微信开放平台的微信登录接入的,我们扫描CSDN的登录二维码

实现用户登录方式

我用QQ进行扫描得到的链接https://open.weixin.qq.com/connect/confirm?uuid=021ZYeQpLMCREl5P

也就是说其实是先去访问微信的服务器去发送请求的,然后才会把请求发送给CSDN的服务器,大致步骤如下所示

实现用户登录方式