Masonite框架的灵活社会认证
masonite-socialite的Python项目详细描述
Masonite社交名流Masonite Framework的灵活社交身份验证
目录
示例
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与我们联系。在
- 项目
标签: