资讯专栏INFORMATION COLUMN

app与php后台接口登录认证、验证(seesion和token)

whjin / 730人阅读

摘要:退出登录指客户端退出登录状态。服务器利用算法产生一对公钥和私钥。客户端收到公钥后,加密用户密码,向服务器发起第二次登录请求传输用户名和加密后的密码。

简要:随着电商的不断发展,APP也层次不穷,随着科技的发展主要登录形式(微信、QQ、账号/密码);为此向大家分享一下"app与php后台接口登录认证、验证"想法和做法;希望能够帮助困惑的伙伴们,如果有不对或者好的建议告知下;~
一、登录机制

粗略分析:登录可分为三个阶段(登录验证、登录持续、退出登录);登录验证指客户端提供账号/密码(或第三方平台(微信、qq)获取openid/unionid)向服务器提出登录请求,服务器应答请求判断能否登录并返回相应数据;登录持续指客户端登录后, 服务器能够分辨出已登录的客户端,并为其持续提供登录权限的服务器。退出登录指客户端退出登录状态。

方案,客户端登录成功后, 服务器为其分配seesionId和token, 客户端每次请求资源时都带上sessionId和token验证,当sessionId失效带上token重新获取sessionId从而获取相应资源;
1.1 登录状态seesionId

登录状态指,客户端登录情况(登录中,未登录);简单登录流程如下:

1 、客户端向服务器第一次发起登录请求(不传输用户名和密码)。

2、服务器利用RSA算法产生一对公钥和私钥。并保留私钥, 将公钥发送给客户端。

3、客户端收到公钥后, 加密用户密码, 向服务器发起第二次登录请求(传输用户名和加密后的密码)。

4、服务器利用保留的私钥对密文进行解密,得到真正的密码。

登录成功后,服务器在session中分配一个Id记录客户端访问状态;

1.2 身份验证token

token就是令牌,最大的特点就是随机性,不可预测;从上面流程可知,单单一个sessionId判断用户的登录状态及身份并不可取;为此需要token进行身份审核;并且token存活时间应比sessionId长;因为sessionId一旦实效,就可以通过token来保持登录状态;

二、用户登录 2.1 登录验证

app登录方式如开头所说,主流三种:微信、QQ、账号/密码;首次验证是通过数据的匹配;匹配成功服务器返回唯一的sessionId和token,防止用户信息的泄露;期间,建议token存活时间应比sessionId长;因为sessionId一旦实效,就可以通过token来维持登录状态;

2.2 登录持续

sessionId记录着客户端登录状态,保存在服务器session中;可想而知当session过了存活期时就会失效,通过token重新获取sessionId;保证登录状态的延续;

2.3 退出登录

sessionId注销;

作者:不动峰
博客园:http://www.cnblogs.com/mylly/
版权所有,欢迎保留原文链接进行转载:)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28673.html

相关文章

  • 聊聊鉴权那些事

    摘要:什么是鉴权鉴权是指验证用户是否拥有访问系统的权利。传统的鉴权是通过密码来验证的。这种方式的前提是,每个获得密码的用户都已经被授权。接下来就一一介绍一下这三种鉴权方式。 在系统级项目开发时常常会遇到一个问题就是鉴权,身为一个前端来说可能我们距离鉴权可能比较远,一般来说我们也只是去应用,并没有对权限这一部分进行深入的理解。 什么是鉴权 鉴权:是指验证用户是否拥有访问系统的权利。传统的鉴权是...

    wslongchen 评论0 收藏0
  • Laravel从零开发后台API(二)

    摘要:之前我们已经准备好了基本的安装过程现在我们去实现一下具体的业务部分用户的登录与注册对于用户注册这对于一款应用来说再正常不过了为了接下来我们的效果我们可以去生成一个即在项目终端执行生成用户之后我们暂时先不去编辑字段后面我们需要用到时再加返回字 之前我们已经准备好了基本的安装过程 现在我们去实现一下具体的业务部分 用户的登录与注册 对于用户注册 这对于一款应用来说再正常不过了 为了接下来...

    Nekron 评论0 收藏0
  • session登录机制

    摘要:每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。由于可以被人为的禁止,必须有其他机制以便在被禁止时仍然能够把传递回服务器。 github 地址:戳这里 session 概念 指一类用来在客户端与服务器之间保持状态的解决方案 这种解决方案的存储结构 特点 由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。...

    nifhlheimr 评论0 收藏0
  • Laravel核心解读 -- 扩展用户认证系统

    摘要:扩展用户认证系统上一节我们介绍了系统实现的一些细节知道了是如何应用看守器和用户提供器来进行用户认证的,但是针对我们自己开发的项目或多或少地我们都会需要在自带的看守器和用户提供器基础之上做一些定制化来适应项目,本节我会列举一个在做项目时遇到的 扩展用户认证系统 上一节我们介绍了Laravel Auth系统实现的一些细节知道了Laravel是如何应用看守器和用户提供器来进行用户认证的,但是...

    王伟廷 评论0 收藏0
  • 学习 Lumen 用户认证 (一)

    摘要:在开发中,用户认证是核心,是数据是否有保障的前提,目前主要有两种常用方式进行用户认证和。附是为了在网络应用环境间传递声明而执行的一种基于的开放标准。 好久没写 PHP 代码了,尤其是 Lumen,我是 Lumen 的忠实用户,自从面世开始,我就将 Lumen 作为我 API 的主要框架使用。 但说到 API,不得不说的一个概念:「前后端分离」,现在越来越多的团队都采用前后端分离,彻底解...

    wangzy2019 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<