OAuth2令牌的生命周期是什么。我们应该在每个用户的RDBMS中坚持它吗?
答案 0 :(得分:3)
您可以自定义令牌的生命周期(原始令牌和刷新令牌),例如您可以拥有 $user = new User();
$form = $this->createForm(UserForm::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$img = $user->getPhoto();
$fileName = md5(uniqid()).'.'.$img->guessExtension();
$user->setPhoto($fileName);
// Move the file to the directory where brochures are stored
$img->move(
$this->getParameter('user_image_directory'),
$fileName
);
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
}
的实现:
img src="{{ asset('media/users/') }}{{ filename }}"></div>
并且是的,当您在数据库管理中使用而不是在内存管理中进行身份验证和授权时,您可以将令牌存储在RDBMS中。
答案 1 :(得分:2)
这取决于OAuth提供程序,但通常access_token有效1小时,只要您有相应的refresh_token对,就可以刷新。如果access_token已过期,则可以使用在初始令牌请求期间发送的refresh_token刷新它。一旦刷新令牌的生命周期到期,就应该删除令牌,这通常在几天或几个月内持续很长时间。
答案 2 :(得分:2)
这是 OAuth2 流程:
Auth服务器设置令牌的到期日期,因此您可以使用令牌直到它过期。
应用程序收到如下的访问令牌:
<span id="print-report-btn" class="btn btn-primary btn-mini">
<span style="float:left;">
<span style="display: block;padding: 0px;margin: 0px;">Huge</span>
<span style="display: block;padding: 0px;margin: -10px 0 0 0;">Report</span>
</span>
<span style="float: right;" style="padding: 0px;">
<img src="images/icons/print.png" width="23" height="23" />
</span>
</span>
如果在发出刷新令牌时令牌已过期,则可以使用它来请求新的访问令牌。
您可以找到更多详细信息here。