zoukankan      html  css  js  c++  java
  • jwttoken 报错User not found,指定token的验签的表,制定token验证的表,根据不同的表生成token

    token使用场景

    项目分为两端pc和h5,对应的用户表分别为users和members其中users为后台管理员用户表,memers为项目用户表,在用户通过h5登陆的时候使用member模型并且用户只采用手机号快捷登陆,也就是说member表中的用户没有密码,后台管理员登陆的时候使用的是user模型,我们采取路由中间件的方式进行token的验签

    为了实现该效果分为以下几步

    一、token的生成

    查看https://www.cnblogs.com/mzli/p/10637214.html可了解使用jwttoken的配置,pc端生成token我们使用auth('users')->attempt($data),$data=[用户名,密码]

    attempt方法的解释:Attempt to authenticate a user using the given credentials(尝试使用给定凭据对用户进行身份验证)

    同样的pc端使用auth('users')->user($token)来解析token中包含的用户信息

    h5 登录时我们仅通过用户id来生成token使用方法为tokenById($id)同样的可以通过auth('')->user($token)来获取信息但是这里应该使用member门面如auth('member')->user($token)

    二、token的验签通过路由中间件

    jwttoken本身已经提供了验证token的中间件--jwt.auth,但是因为我们是两张表,所以在我们使用的时候应该指定使用member还是user表来查询对应token的数据

    jwttoken验证token的中间件如下

     

     

     而在这个中间件中又调用了class BaseMiddleware中的anthenticate方法,anthenticate方法如下

     

     

     $this->auth就在本类中有一个构造函数,如下

     

     

     所以也就是说,我们在使用这jwttoken提供的验证token的中间件jwt.auth中间件的时候我们就应该直接将对应的auth类声明

    所以在路由中应该如下使用

     

     这样,我们就可以使用对应的模型进行数据的验证和获取了

    三、如果使用jwttoken中报错User not found也有可能是因为没有指定要使用的模型是哪一个,jwttoken无法获取到对应的用户数据,报错没有这个用户

     

  • 相关阅读:
    jmeter 安装
    Day05_系统监控、rpm、yum软件包管理及源码安装python解释器
    Day04_vim编辑器及硬盘操作
    Day03_用户群组权限及正文处理命令
    Day02_操作系统、网络及Linux基础
    Day01_计算机硬件及启动流程
    让Sublime Text成为静态WEB服务器:SublimeServer
    sublime text2-text3 定义的不同浏览器的预览快捷键
    css之px自动转rem—“懒人”必备
    修改Sublime Text3 的侧边栏字体大小
  • 原文地址:https://www.cnblogs.com/mzli/p/12372231.html
Copyright © 2011-2022 走看看