V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shiji
V2EX  ›  PHP

Laravel Passport, 跟大家分享我的狗血经历。

  •  
  •   shiji · 2019-01-14 09:01:15 +08:00 · 5833 次点击
    这是一个创建于 2136 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Laravel 和 Passport 都是最新版的。

    最近想搞个 API, 用过 Password Grant Tokens 和 Personal Access Tokens。
    全部都是 401 "message": "Unauthenticated."

    我在这上面浪费了不止三天了。 搜遍中英全网,尝试了所有可能的解决方案,都是无果。

    就在刚刚,找到了问题的所在:欢迎大家鄙视

    图一,用用户名密码换取 Access Token




    图二,粘贴到 Bearer






    图三 谜底揭晓





    一个小小的句点,我习惯于双击取词复制,没成想里面是可以有句点的。。。

    哎。
    16 条回复    2019-01-14 12:34:29 +08:00
    xnode
        1
    xnode  
       2019-01-14 09:04:00 +08:00
    我选择用了 jwt passport 看的我头疼
    justudy
        2
    justudy  
       2019-01-14 09:10:44 +08:00
    基础不扎实,jwt 都没搞清楚原理
    justudy
        3
    justudy  
       2019-01-14 09:11:58 +08:00
    可能你现在都不知道为什么有二个点分割成三部分
    AngryPanda
        4
    AngryPanda  
       2019-01-14 09:14:50 +08:00 via Android
    通常来说,两个点分割为三个部分的 bearer token 就是 jwt bearer
    xfcy
        5
    xfcy  
       2019-01-14 09:21:31 +08:00 via Android
    不是必须有句点的么😰
    baijunyao
        6
    baijunyao  
       2019-01-14 09:22:46 +08:00   ❤️ 1
    浪费的三天是你欠下的 OAuth 和 JWT 知识债;这个锅真不能甩给 laravel passport ;
    miaotaizi
        7
    miaotaizi  
       2019-01-14 09:25:57 +08:00 via iPhone
    感谢分享…
    不对,你分享了啥?
    自己的坑?
    atlantic2477
        8
    atlantic2477  
       2019-01-14 09:30:50 +08:00
    看到楼上兄弟们的正解我基本就放心了。
    至于楼主的 “搜遍中英全网,尝试了所有可能的解决方案,都是无果。”,这个锅确实应该你自己来背
    zn
        9
    zn  
       2019-01-14 09:33:05 +08:00
    三天不至于吧,单步调试跟踪进去,耐心点,顶多半个小时就找到出错的根源了。
    shiji
        10
    shiji  
    OP
       2019-01-14 09:38:26 +08:00
    @baijunyao
    @justudy
    我印象里的 Access Token 是没有固定格式的。具体怎么生成没有官方的标准。JWT 只是生成 access token 的方式之一吧。
    还是我理解错了? OAuth 的 Access Token 必须要有两个点? Access Token 必须要用 JWT 生成?
    masker
        11
    masker  
       2019-01-14 09:40:00 +08:00 via Android
    日常甩锅。
    jzmws
        12
    jzmws  
       2019-01-14 09:44:53 +08:00
    JWT 的呀!!!
    baijunyao
        13
    baijunyao  
       2019-01-14 09:45:36 +08:00
    @shiji laravel passport 生成的 token 是 jwt 格式的; 而 jwt 的特征就是两个点;因为你不熟悉 jwt ;所以会觉得这个点坑了你;
    AngryPanda
        14
    AngryPanda  
       2019-01-14 09:45:47 +08:00 via Android
    @shiji 你是对的。
    shiji
        15
    shiji  
    OP
       2019-01-14 09:49:21 +08:00
    @baijunyao 嗯,我刚刚看了,这方面确实不够熟悉。 以前光知道 jwt 是一种让服务端免去 session 维护的方案。。
    ericgui
        16
    ericgui  
       2019-01-14 12:34:29 +08:00
    jwt.io

    了解一下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3449 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:20 · PVG 19:20 · LAX 03:20 · JFK 06:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.