我有一个 Symfony 6.4 Webapp 并使用 Form Builder。它运行正常,但我有一个外部数据源。(Active Directory)如果表单必须加载带有特殊字符的条目(在
我有一个 Symfony 6.4 Webapp 并使用 Form Builder。它运行正常,但我有一个外部数据源。(Active Directory)
如果表单必须加载带有特殊字符的条目(在德语中我们有\'ä\' \'ö\' \'ü\' 等等),我就会得到一个异常。
名称 group_with_special_characters 包含非法字符。名称应以字母、数字或下划线开头,且仅包含字母、数字、下划线 (\'_\')、连字符 (\'-\') 和冒号 (\':\')。
这是我在 FormularType 中的代码:
class AssignedGroupsType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
foreach ($options['assignedGroups'] as $groupName => $groupDN) {
$builder->add($groupName, CheckboxType::class, [
'label' => $groupName,
'value' => $groupDN,
'required' => false,
]);
}
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => null,
]);
$resolver->setDefined(['assignedGroups']);
}
}
在 GitHub 项目页面上,我发现了一个 已关闭的问题 ,可能的解决办法是设置 'expanded' => false,但这不起作用。因为我们生活在 2024 年,我想创建一个现代 Web 应用程序,所以我不能接受将字符从 \'ö\' 转换为 \'oe\',将 \'ä\' 转换为 \'ae\' 等等。
base.html.twig 模板以以下内容开头:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
[...]
我在 django 应用中使用 rest_framework_simplejwt 进行身份验证。对于注销,我想使刷新令牌过期。class LogoutView(APIView): permission_classes = (IsAuthenticated,) ...
我在 django 应用中使用 rest_framework_simplejwt 进行身份验证。对于注销,我想使刷新令牌过期。
class LogoutView(APIView):
permission_classes = (IsAuthenticated,)
def post(self, request, *args, **kwargs):
try:
refresh_token = request.data.get('refresh', None)
token = RefreshToken(refresh_token)
token.set_exp(lifetime=timedelta(seconds=0))
return Response(status=status.HTTP_205_RESET_CONTENT)
except Exception as e:
print(e)
return Response(status=status.HTTP_400_BAD_REQUEST)
这按预期工作。当我执行 token.check_exp() ,它显示“已过期”。但是,我仍然可以使用它在此处生成新令牌:
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
urlpatterns = [
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
]
这是为什么呢?但是,如果我将令牌列入黑名单而不是使其过期,这一切都会按预期工作。