Masonite框架的灵活社会认证

masonite-socialite的Python项目详细描述


Masonite社交名流

Masonite Framework的灵活社交身份验证

Build StatusGitHub licenseTwitter

目录

示例

classSocialAuthController(Controller):"""SocialAuthController Controller Class."""deflogin(self,socialite:Socialite):returnsocialite.driver('github').redirect()defcallback(self,view:View,request:Request,socialite:Socialite):user=socialite.driver('github').user()# Your application logic here.

安装

^{pr2}$

SocialiteProvider添加到config/providers.py中的提供者列表:

fromsocialite.providersimportSocialiteProviderPROVIDERS=[# Third Party ProvidersSocialiteProvider,]

这将向craft添加一个新的socialite:install命令。然后在终端上运行:

craft socialite:install

配置

在使用Socialite之前,您需要从要使用的提供者处获取凭据。根据应用程序所需的提供程序,您将在.env文件中放置正确的凭据:

# FacebookSOCIAL_AUTH_FACEBOOK_KEY=''SOCIAL_AUTH_FACEBOOK_SECRET=''SOCIAL_AUTH_FACEBOOK_REDIRECT_URI=''# TwitterSOCIAL_AUTH_TWITTER_KEY=''SOCIAL_AUTH_TWITTER_SECRET=''SOCIAL_AUTH_TWITTER_REDIRECT_URI=''# GoogleSOCIAL_AUTH_GOOGLE_OAUTH2_KEY=''SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET=''SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URI=''# GithubSOCIAL_AUTH_GITHUB_KEY=''SOCIAL_AUTH_GITHUB_SECRET=''SOCIAL_AUTH_GITHUB_REDIRECT_URI=''# LinkedInSOCIAL_AUTH_LINKEDIN_KEY=''SOCIAL_AUTH_LINKEDIN_SECRET=''SOCIAL_AUTH_LINKEDIN_OAUTH2_REDIRECT_URI=''

如果您不知道如何获得这些值,您可以找到一个详细的指南here。在

路由

您需要两个路由:一个用于将用户重定向到适当的OAuth提供程序,另一个用于在身份验证后从提供程序接收回调。在

"""Web Routes."""frommasonite.routesimportGetROUTES=[Get('auth/@provider','SocialAuthController@login'),Get('auth/@provider/callback','SocialAuthController@callback'),]

控制器

您可以使用Social助手访问Socialite

frommasonite.authimportAuthfrommasonite.controllersimportControllerfrommasonite.requestimportRequestfromapp.UserimportUserfromsocialiteimportSocialiteclassSocialAuthController(Controller):"""Controller For Social Authentication."""defredirect_to_provider(self,request:Request,socialite:Socialite):"""Redirect the user to the authentication page"""returnsocialite.driver(request.provider).redirect()defhandle_provider_callback(self,request:Request,socialite:Socialite,auth:Auth):"""Obtain the user information"""user=socialite.driver(request.provider).user()# => print(user)returnrequest.redirect('/home')

供应商

  • [x] Github公司
  • [x] 脸谱网
  • [x] 推特
  • [x] 谷歌
  • [x] Linkedin
  • []Gitlab公司

我们正在接受新的供应商。发送新的提供程序请求。您可以按照本教程添加新的提供程序。在

支持

Masonite Socialite感谢来自不同背景的帮助。小的改进或修复总是值得赞赏的,标记为容易的问题可能是一个好的起点。如果您正在考虑传统编码工作之外的更大贡献,请通过hellomasonite@gmail.com与我们联系。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有泛型的对象的oop Java数组   爪哇丑陋的数字找到第1500名UVA在线评委   SpringJava。lang.IllegalStateException:自动连线批注至少需要一个参数   java为什么我的系统找不到我的属性文件?   java有没有办法让Maven同时构建1.5和1.6字节码JAR?   java通过Sailfin中的header进行操作   使用向量、距离和图形   如果提供的登录信息是错误的,为什么java控件不进入else部分和Toast?   java如何为电子商务安卓应用程序存储产品列表   java保存声音首选项Libgdx Android   java无法在测试单元中调用JpaRepository   java使用批处理更新Cassandra表中的选定列,而不将其他列值设为null   java如何在log4j2中的手动代码配置中向appender添加级别?   从ImageIO返回的java Null。读取(新的ByteArrayInputStream(bs));   java不确定如何防止此Arraylist处于可编辑状态   netbeans中的java更改清单(TrustedLibrary=true属性)   java无法使用RestTemplate和Spring数据REST发布具有关系的新实体