2018-12-05 09:39:59 2068次浏览 1条回答 1 悬赏 100 金钱

请问 Yii2 中调用 rest API 使用 HttpBearerAuth 认证,前后台两张表,如何做权限认证?

参考答案https://stackoverflow.com/questions/35254678/multiple-user-identity-in-config-yii2

数据库表user(后台账号表),member(前台会员表)
配置文件main.php中components

'user' => [
    'identityClass' => 'common\models\User',
    'enableAutoLogin' => true,
    'identityCookie' => ['name' => '_identity-user', 'httpOnly' => true],
    'idParam' => '__id-user'
],
'member' => [
    'class' => 'yii\web\User',
    'identityClass' => 'common\models\Member',
    'enableAutoLogin' => true,
    'identityCookie' => ['name' => '_identity-member', 'httpOnly' => true],
    'idParam' => '__id-member'
],

接口调用
Bearer token-***
如果bearer是member表中则报错

{
"name": "Unauthorized",
"message": "Your request was made with invalid credentials.",
"code": 0,
"status": 401,
"type": "yii\\web\\UnauthorizedHttpException"
}

使用user表中bearer
可以正常访问
这个返回为空 Yii::$app->member->identity
这个 Yii::$app->member 有返回对象

我想知道如果同一个 api 接口,给前台和后台调用,根据 user 和 member 两个表提供的 token,去判断是前台用户还是后台用户,该如何操作,有没有好一点的思路。

  • 回答于 2018-12-06 23:37 举报

    创建一个继承 HttpBearerAuth 的子类啊,Controller中加个行为指向这个子类

您需要登录后才可以回答。登录 | 立即注册
acking
总监

acking 上海

注册时间:2012-05-16
最后登录:2024-04-16
在线时长:65小时44分
  • 粉丝13
  • 金钱2560
  • 威望0
  • 积分3210

热门问题