如何创建一个自定义的Authentication Provider

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建一个自定义的Authentication Provider相关的知识,希望对你有一定的参考价值。

参考技术A xml 配置:
<authentication-manager>
<authentication-provider ref="myAuthenticationProvider" />
</authentication-manager>

<beans:bean id="userDetailsService" class="net.mantis.security.auth.NMUserDetailsService"/>
<beans:bean id="myAuthenticationProvider" class="net.mantis.security.auth.MyAuthenticationProvider">
<beans:property name="userDetailsService">
<beans:bean class="net.mantis.security.auth.NMUserDetailsService">
</beans:bean>
</beans:property>
</beans:bean>本回答被提问者采纳

如何使用 GraphQL 自定义的 Authentication 类?

【中文标题】如何使用 GraphQL 自定义的 Authentication 类?【英文标题】:How to use GraphQL customized Authentication class? 【发布时间】:2020-03-31 09:08:04 【问题描述】:

使用 Django REST Framework(DRF) 我可以像这样自定义Authentication class and Permission class

from django_cognito_jwt import JSONWebTokenAuthentication
from rest_framework import viewsets
from rest_framework.permissions import IsAuthenticated

class CognitoQuestionViewSet(viewsets.ModelViewSet):
    authentication_classes = (JSONWebTokenAuthentication,)
    permission_classes = (IsAuthenticated,)
    queryset = Question.objects.all()
    serializer_class = QuestionSerializer

在 GraphQL 中 docs。它使用与我的项目不同的标准 Django 登录。我检查了来源LoginRequiredMixin,但没有运气。我在那里看不到Authentication class,然后我可以覆盖它

问题: 如何自定义 GraphQL Authentication class and Permission class 就像我在 DRF 中所做的一样

【问题讨论】:

【参考方案1】:

经过试验并尝试使用django-graphql-jwt 没有运气。 vinayan3 回答了我的问题。因为django-cognito-jwt 被认为是DRF 的补码。

解决方案: 只需将TokenAuthentication 替换为来自django_cognito_jwtJSONWebTokenAuthentication

【讨论】:

听起来你应该可以使用django-graphql-jwts' @user_passes_test decorator 来编写自定义权限验证函数。 django-graphql-auth 允许使用 GraphQL 注册和管理用户帐户。它扩展了 django-graphql-jwt 以进行 JWT 身份验证。

以上是关于如何创建一个自定义的Authentication Provider的主要内容,如果未能解决你的问题,请参考以下文章

在WCF中,自定义Authentication,Validate方法,抛出错误异常时如何在不停止服务的情况下处理异常?

弹簧靴。 HMAC 认证。如何添加自定义 AuthenticationProvider 和 Authentication 过滤器?

弹簧靴。 HMAC 认证。如何添加自定义 AuthenticationProvider 和 Authentication 过滤器?

Owin,在Authentication Request中传递自定义查询参数

Oracle Apex 自定义身份验证错误 - “MY_AUTHENTICATION”不是一个过程

Laravel文档阅读笔记-Custom Authentication Login And Registration Using Laravel 8