Laravel API jwt token 的问题
请教各位,我使用了composer require tymon/jwt-auth 1.0.0-rc.1 ,我看了大量的教程,都使用了 User.php 的模型,进行验证用户的,如果我不用laravel 的 auth 验证体系,我如何自己生成token?
生成一个用户$user之后
使用JWT Auth的
JWTAuth::fromUser($user)
来生成该用户的token每个user表加个token字段
用户登录成功之后:修改用户token为随机字符串 返回这个随机字符串给前端
前端每次发送请求带上token 每次都查询这个token是那个用户的
这种无状态的token,很容易被人盗用的,加https貌似也没有啥用!!欢迎讨论!!
@随风飘流的男人
token盗用的话 我只想到前端
网络的传输盗用 难道他跑到别人家监听网络不成
前端的话 都是localStorage保存token
黑客localStorage.getItem获取到token ajax发送到他们服务器
但是cookie不也是不安全(存在本地的)?
我想不到 哪里不安全
这是我获取用户身份的代码
@mirrorpen $user 是一个数组吧,里面应该是存储用户的一些验证过密码后的信息吧,比如 存放userid , 和 username 等,不知道我理解的对不?
@mirrorpen @lyxxxh @随风飘流的男人 等于token是否安全,我也比较迷茫,看了很多文章,其实也没把我在安全层级的担忧打消,可能我是菜鸟吧。
我的需求是 前端后端完全分离,所以我需要laravel提供API接口,然后前端有很多端,手机端,H5端,PC端,ipad端。我需要鉴权。所以想到用token。也欢迎各位能给我一个正确的思路!谢谢!
@lyxxxh 我是专门在一个 tokeninfo 表里,存储我需要公钥和私钥,第一次登录,登录验证成功,我将公钥发给前端,然后前端使用 localstroage 保存,然后每次请求,携带这个公钥。来调用接口,接口进行鉴权,如果OK ,就返回数据,如果不OK 就不返回数据。
不知道这样的思路对不?
@andyzu

对的 我跟你的差不多
中间件查询这个token是谁的 查询到合并到$request对象 查询不到,没有这个token就返回失败
可以尝试查看一下源码,这个 SDK 生成 token 的方法有好几种。
User model 实现 Tymon\JWTAuth\Contracts\JWTSubject 接口
修改 config/api.php
login 生成用户 token
推荐用官方推荐的包吧Passport OAuth 认证
@Liuzhipeng_laravel 这个是认证,我需要的是鉴权。
绑定需要认证的模型
如果我不需要laravel 的认证,而是我自己手动认证。应该怎么做?@summer-1994
@andyzu 那你完全不需要用
tymon/jwt-auth
这个包,这个包核心是实现了laravel的Guard接口,把需要验证的模型主键id按一定的规则生成对应的token。你可以自己写一套加密token的规则,然后在中间件解密认证。 0.0 你非要用包生成token然后再自己验证,你可以在中间件 用 JWTAuth::parseToken()->getPayload()->get('sub') 获取加密模型的主键id,然后按需求验证@summer-1994 感谢你!我明白了!