搜索
查看: 750|回复: 0

yii2项目实战之restful api授权验证详解

[复制链接]

4856

主题

4856

帖子

4861

积分

新手上路

Rank: 1

积分
4861
发表于 2018-2-11 11:54:32 | 显示全部楼层 |阅读模式

            前言
什么是restful风格的api呢?我们之前有写过大篇的文章来介绍其概念以及基本操作。
既然写过了,那今天是要说点什么吗?
这篇文章主要针对实际场景中api的部署来写。
我们今天就来大大的侃侃那些年api遇到的授权验证问题!独家干活,如果看完有所受益,记得不要忘记给我点赞哦。
业务分析
我们先来了解一下整个逻辑

  
  • 用户在客户端填写登录表单
      
  • 用户提交表单,客户端请求登录接口login
      
  • 服务端校验用户的帐号密码,并返回一个有效的token给客户端
      
  • 客户端拿到用户的token,将之存储在客户端比如cookie中
      
  • 客户端携带token访问需要校验的接口比如获取用户个人信息接口
      
  • 服务端校验token的有效性,校验通过,反正返回客户端需要的信息,校验失败,需要用户重新登录
      

    本文我们以用户登录,获取用户的个人信息为例进行详细的完整版说明。
    以上,便是我们本篇文章要实现的重点。先别激动,也别紧张,分析好了之后,细节部分我们再一步一个脚印走下去。
    准备工作

      
  • 你应该有一个api应用,如果你还没有,请先移步这里→_→Restful api基础
      
  • 对于客户端,我们准备采用postman进行模拟,如果你的google浏览器还没有安装postman,请先自行下载
      
  • 要测试的用户表需要有一个api_token的字段,没有的请先自行添加,并保证该字段足够长度
      
  • api应用开启了路由美化,并先配置post类型的login操作和get类型的signup-test操作
      
  • 关闭了user组件的session会话
      

    关于上面准备工作的第4点和第5点,我们贴一下代码方便理解
    'components' => [
    'user' => [
    'identityClass' => 'common\models\User',
    'enableAutoLogin' => true,
    'enableSession' => false,
    ],
    'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => true,
    'rules' => [
      [
      'class' => 'yii\rest\UrlRule',
      'controller' => ['v1/user'],
      'extraPatterns' => [
       'POST login' => 'login',
       'GET signup-test' => 'signup-test',
      ]
      ],
    ]
    ],
    // ......
    ],
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    长春门户网站

    长春门户网是网民了解长春的网络窗口,同是提供长春地区百姓生活分类供求信息的门户网站,同时提供长春网站建设、长春网站设计,我们将逐步的完善网站分类信息资源;

    长春门户网二维码

    联系我们

    • 工作时间:早上8:00 - 晚上5:30
    • 投稿联系:13624467185(微信同号)
    • 反馈邮箱:5053050@QQ.com
    • 公司地址:吉林省长春市亚泰大街与自由大路交汇五环国际大厦1408室

    QQ|小黑屋|手机版|Archiver|cc! ( 吉ICP备2021009740号-8 )

    Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表