小程序登录流程

小程序登录流程分析

    1.需要先获取用户的唯一标识(临时的) wx.login 获取code wx.request 发送code 给公司服务器


       公司服务器不能够直接获取用户信息,需要拿唯一标识向微信服务器获取信息,点击登录时这个微信标识是临时的,需要再5分钟内拿唯一标识去微信服务器去获取用户信息

    不使用临时标识,黑客会使用枚举获取很多用户信息,没有安全可言。
-------------------------------------------------------------

    2. 公司拿appid + 秘钥 + code 获取用户真正的唯一标识

需要向微信服务器发送请求,要用户的appid + 秘钥 + code 

需要让微信服务器知道谁去要用户信息,要的是那个用户的信息

-----------------------------------------------------

    3.微信服务器返回openid(用户真正的唯一标识)+ session_key (是公司服务器用微信服务器的识别令牌 类似于token)


微信服务器,在接受到appid+秘钥+code以后,也会进行验证
如果验证通过以后,微信服务器会返回用户的唯一标识和相关信息
同时会返回session_key,是类似于(token)

---------------------------------------------------

    4.公司后端对openId + session_key  或者其他标识进行加密,公司服务器将自定义登录态和openId进行关联,返回给前端token,

    公司服务器将自定义登录态和openId进行关联,没有采用微信登录,这时候,后端服务器存储的只有用户名和密码信息,需要将用户名和密码进行关联

    关联以后,返回之前存储的用户信息,以后不论使用那个登录方式,返回的都是同一个人的信息。
    
        关联以后,需要进行加密处理,加密处理以后,后端实现自己的业务逻辑,将token返回给前端

    5.前端接受token,将token存储到本地,以后再发送请求,需要再请求头中携带token

    6.公司的服务器验证token,查询用户信息,进行对比,成功后,返回资源
    

什么是 Token
    Token 是服务端生成的一串字符串,用作客户端发起请求的一个身份令牌,当第一次登录成功后,服务器生成一个 Token 便将此 Token 返回给客户端,客户端在接收到令牌以后,会使用某种方式(例如:本地存储)将令牌保存到本地。以后客户端发起请求,只需要在【请求头】上带上这个 Token 即可,无需再次带上用户名和密码

Token的具体流程
1. 客户端向服务器发起登录请求,服务端验证用户名与密码
2. 验证成功后,服务端会签发一个 Token,并将 Token 发送到客户端
3. 客户端收到 token 以后,将其存储起来,比如放在 localStorage 、sessionStorage 中
4. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token,服务端收到请求,然后去验证客户端请求里面带着的 Token ,如果验证成功,就向客户端返回请求的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值