Yii2使用post params创建自定义休息动作

时间:2016-06-20 09:03:41

标签: rest yii2

在我的yii2应用程序中,我需要开发一个休息动作authUser()

public function actionAuthUser($username, $password)
{
    return \api\models\User::findOne(['username' => $username, 'password' => sha1($password)]);
}

params应该使用post方法传递,因为它们包含敏感信息。

我该怎么做?如何设置网址管理员使用post方法接收我的参数?

提前致谢所有帮助

1 个答案:

答案 0 :(得分:3)

[
    'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                // ...
                [
                    'POST site/auth-user' => 'site/auth-user',
                ]
            ],
        ],
    ],
]

或向Controller添加行为

public function behaviors()
{
    return [
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'auth-user' => ['post'],
            ],
        ],
    ];
}

在控制器动作中

public function actionAuthUser()
{
    return \api\models\User::findOne(['username' => Yii::$app->request->post('username'), 'password' => sha1(Yii::$app->request->post('password'))]);
}