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

目前认为是 RESTful api 设计的正确姿势。欢迎批评指正: https://github.com/timqian/jwtAuth-RESTful-server-starter

  •  2
     
  •   timqian ·
    timqian · 2015-12-02 14:12:38 +08:00 · 4165 次点击
    这是一个创建于 3068 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2015-12-02 22:04:51 +08:00
    24 条回复    2015-12-03 11:54:37 +08:00
    Juggernaut
        1
    Juggernaut  
       2015-12-02 14:25:19 +08:00
    node.js 代码?
    timqian
        2
    timqian  
    OP
       2015-12-02 14:38:32 +08:00
    haozhang
        3
    haozhang  
       2015-12-02 14:40:47 +08:00
    说实话你的登陆的 endpoint 命名用的是 login ,这不好,应该用 authentications 之类的。而且 token 最好再次加密下。
    timqian
        4
    timqian  
    OP
       2015-12-02 15:06:52 +08:00 via Android
    @haozhang 你说的加密指的是怎样
    haozhang
        5
    haozhang  
       2015-12-02 15:22:16 +08:00
    @timqian 将 token 进行加密,第一次生成 jwt 的特征太明显了。
    timqian
        6
    timqian  
    OP
       2015-12-02 16:06:19 +08:00
    @haozhang 其实不把重要信息(比如 password )放在 claims 里,应该没什么问题。对安全性有更高要求的话就用 JWE 了。
    参考: https://stormpath.com/blog/jwt-the-right-way/
    haozhang
        7
    haozhang  
       2015-12-02 16:21:38 +08:00
    @timqian 这种特征很明显的东西不加层密能说得过去么...而且你的 API 的命名明显是错的。
    像 login 这种应该用 authentications 之类的。
    nuc093
        8
    nuc093  
       2015-12-02 17:16:15 +08:00   ❤️ 1
    timqian
        9
    timqian  
    OP
       2015-12-02 17:19:22 +08:00
    @haozhang 谢谢你的回复。
    关于验证用户的 API 叫作 login 还是 authentications :的确看到大家大多用后者,我之后很可能会把它改掉。但我没有找到很好的理由非得用 authentications ( URL 应该用名词这个惯例我是知道的,但 login 也可作名词的吧)。不知道你有什么重要的理由?
    关于加密,我对网络安全不是很熟,能不能说下为什么说不过去或者给个链接给我参考。

    我原本想的是对于一般的用户相关 API 使用 token 来验证(比如查看用户点赞的内容), 当涉及比较重要的操作(比如下订单)。需要用户重新验证用户名密码。
    timqian
        10
    timqian  
    OP
       2015-12-02 17:22:16 +08:00
    @nuc093 的确不错。回头仔细看看
    nuc093
        11
    nuc093  
       2015-12-02 17:39:20 +08:00
    @timqian 我已经用在我们的项目里了啊。后面准备加 LDAP 、权限角色。他有 github demo 跑起来很快的。
    Juggernaut
        12
    Juggernaut  
       2015-12-02 17:48:05 +08:00
    目前 RESTful ,哪几本书最值得推荐?
    大家聊聊
    blue7wings
        13
    blue7wings  
       2015-12-02 17:52:50 +08:00
    @Juggernaut <build apis you won't hate> laravel 相关. 这类书貌似不是特别多.
    canesten
        14
    canesten  
       2015-12-02 17:53:20 +08:00
    现在神烦 RESTful
    html4 form method 只有 get post
    一个 http 请求的一个完整事务里牵扯到两个不同的 resuorce 的不同 action 要咋命名?
    10 个动态查询条件的 http 请求要如何设计 RESTful 的 url ?
    求大神教教我
    int64ago
        15
    int64ago  
       2015-12-02 21:45:20 +08:00   ❤️ 1
    @canesten
    - AJAX
    - 分别请求
    - /path/to/:your_resource
    haozhang
        16
    haozhang  
       2015-12-02 22:35:53 +08:00
    haozhang
        17
    haozhang  
       2015-12-02 22:39:41 +08:00
    hantsy
        18
    hantsy  
       2015-12-03 00:50:30 +08:00
    hantsy
        19
    hantsy  
       2015-12-03 00:56:13 +08:00
    devtiange
        20
    devtiange  
       2015-12-03 08:10:21 +08:00
    @haozhang
    - 叫 login 好像没啥不妥
    - jwt 里没敏感信息, 没必要加密. 你好像不太懂 jwt
    - 你贴的那个 koablog 没有楼主写的好
    haozhang
        21
    haozhang  
       2015-12-03 11:34:41 +08:00
    @devtiange ....我的思路和他的思路不是一样的么...都是发 username 和 pwd 拿 token ,每次验证 token....哪里有我写的没他好这种说法...
    haozhang
        22
    haozhang  
       2015-12-03 11:37:48 +08:00
    @devtiange 叫 login 我觉得非常不妥。 jwt 起码会有 user 的 id 在里面,必须加密。 koablog 是我自己写的,我觉得比楼主的写得好。
    hantsy
        23
    hantsy  
       2015-12-03 11:46:04 +08:00
    还在为 Authentication 这种东西费心。。。
    haozhang
        24
    haozhang  
       2015-12-03 11:54:37 +08:00
    @hantsy 不为这种东西费心?准守规则不对吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1061 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:04 · PVG 03:04 · LAX 12:04 · JFK 15:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.