相关疑难解决方法(0)

使用令牌实现RESTful API身份验证(Yii/Yii2)

我正在Yii 1.x中构建一个API,它将与移动应用程序一起使用.部分过程涉及使用以下JSON请求登录(使用用户名和密码): -

//使用用户名和密码发送的请求

{
"request" : {
    "model" : {
        "username" : "bobbysmith",
        "password" : "mystrongpassword"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

//如果成功登录,则返回以下响应

{
"response": {
    "code": 200,
    "message": "OK",
    "model": {
        "timestamp": 1408109484,
        "token": "633uq4t0qdtd1mdllnv2h1vs32"
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

此令牌非常重要 - 一旦用户登录应用程序,我希望他们可以访问要求他们登录的其他页面.我希望移动应用程序存储此令牌,如果相同的633uq4t0qdtd1mdllnv2h1vs32令牌是在任何后续请求中发现它将接受此作为经过身份验证的请求(对于此用户'bobbysmith').

我有点不确定如何最好地做到这一点,我做了一些研究,oAuth已被提及几次,以及通过HTTPS的基本身份验证.

所以简而言之......

  1. 在移动应用主页上,用户使用其用户名和密码正确登录,并向API发送请求.
  2. 这将返回一个成功的响应(如上所示),其中包含当前时间戳和所有重要令牌.
  3. 同样的用户进入到另一个应用程序页面/图,其中该令牌是)要求和b)如果它匹配了这个认证用户(例如,这样他们就可以编辑该帐户等.)
  4. 一旦用户点击"注销",该令牌就会被删除(并且可以更长时间访问我的帐户等) - 基本上是基于令牌的身份验证系统.

任何人都可以解释实现这一目标的最佳方法吗?如果我所说的内容不是100%明确的,请告诉我,我会提供更多信息.

当我使用PHP时,Yii 1.x解决方案是理想的,因为这是使用当前API构建的.

概括地说,该应用可确保到服务器的每个请求包括在所述有效载荷或报头,以便此令牌可以被检索令牌随后的后,一旦退出该令牌被简单地移除或设置为空/空

php rest restful-authentication yii access-token

21
推荐指数
1
解决办法
4万
查看次数

Yii2 过期的访问令牌

我正在使用 yii2 实现一个宁静的 api,我想知道如何使用户的访问令牌过期

在我的登录控制器中

if($model->login()){
      return [
        "access_token' => Yii::$app->user->identity->getAuthKey(),
        ];
  }
Run Code Online (Sandbox Code Playgroud)

现在在我的其他控制器中正在实现这种行为

class DefaultController extends Controller {

    $behaviors['authenticator']           = [
        'class'       => CompositeAuth::className(),
        'authMethods' => [
            QueryParamAuth::className(),
        ],
    ];

  }
Run Code Online (Sandbox Code Playgroud)

每当 iu 在我的 url 中使用访问令牌发送我的请求时,它都会起作用

但现在的问题是访问令牌不会过期

如何设置访问令牌的到期时间?

php yii2

0
推荐指数
1
解决办法
3066
查看次数

标签 统计

php ×2

access-token ×1

rest ×1

restful-authentication ×1

yii ×1

yii2 ×1