Flask-Social: Python 웹 애플리케이션에 소셜 로그인 추가
소셜 미디어의 급속한 발전과 함께 점점 더 많은 웹사이트와 애플리케이션이 사용자 등록 및 로그인 프로세스를 단순화하기 위해 소셜 로그인을 사용하기 시작했습니다. 그러나 그러한 기능을 구현하는 것은 쉽지 않습니다. OAuth 프로토콜을 통해 소셜 네트워크와 상호작용하는 방법은 무엇입니까? 획득한 사용자 정보는 어떻게 활용하나요? 권한과 보안을 어떻게 처리하나요? 다행히도 이 기능을 더 쉽게 달성하는 데 도움이 되는 Flask-Social과 같은 뛰어난 Python 애플리케이션 확장이 있습니다. 이번 글에서는 Flask-Social의 사용법과 기본 원리를 소개하겠습니다.
Flask-Social 설치 및 구성
먼저 Flask-Social을 설치해야 합니다. pip 도구를 사용하여 빠르게 설치하세요.
pip install Flask-Social
설치가 완료되면 Flask 프로젝트에서 Flask-Social을 구성해야 합니다. 먼저 Flask 애플리케이션에 소개합니다.
from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask.ext.social import Social from flask.ext.social.datastore import SQLAlchemyConnectionDatastore app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' db = SQLAlchemy(app) app.config['SOCIAL_AUTH_TWITTER_KEY'] = 'your_key' app.config['SOCIAL_AUTH_TWITTER_SECRET'] = 'your_secret' social = Social(app, SQLAlchemyConnectionDatastore(db))
위 코드에서는 먼저 Flask, SQLAlchemy 및 Flask-Social을 포함하여 필요한 종속성 라이브러리를 소개합니다. 그런 다음 Flask 애플리케이션과 SQLAlchemy 데이터베이스, 그리고 데이터베이스에 연결하기 위한 URL을 정의합니다. 다음으로 Twitter 인증을 위한 키와 비밀을 설정합니다. 여기서는 Twitter를 예로 사용합니다. 물론 다른 소셜 미디어 플랫폼의 정보도 사용할 수 있습니다. 마지막으로 Social
클래스를 통해 social
인스턴스를 초기화하고 이를 SQLAlchemyConnectionDatastore 클래스와 연결합니다. Social
类初始化 social
实例,并将其与 SQLAlchemyConnectionDatastore 类连接起来。
Flask-Social 的基本用法
有了上面的设置,我们现在可以使用 Flask-Social 来添加社交登录功能了。假设我们要在应用程序中添加 Twitter 登录,我们可以使用以下代码:
from flask import Flask, request, redirect, url_for, render_template from flask_sqlalchemy import SQLAlchemy from flask.ext.social import Social from flask.ext.social.datastore import SQLAlchemyConnectionDatastore app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' app.secret_key = 'secret' db = SQLAlchemy(app) app.config['SOCIAL_AUTH_TWITTER_KEY'] = 'your_key' app.config['SOCIAL_AUTH_TWITTER_SECRET'] = 'your_secret' social = Social(app, SQLAlchemyConnectionDatastore(db)) @app.route('/') def home(): return render_template('home.html') @app.route('/login') def login(): return social.twitter.authorize(callback=url_for('auth_twitter', next=request.args.get('next') or request.referrer or None)) @app.route('/auth/twitter') def auth_twitter(): resp = social.twitter.authorized_response() if resp is None: return redirect(url_for('home')) session['twitter_token'] = ( resp['oauth_token'], resp['oauth_token_secret'] ) return redirect(url_for('profile')) @app.route('/profile') def profile(): return render_template('profile.html')
这里的代码很简单:我们首先定义了一个主页,然后我们定义一个 login 路由,使用social.twitter.authorize()
函数来生成登录页面。接着,我们处理了 Twitter 登录的信息回调,并将 token 和 secret 存储在 session 中。最后,我们定义一个 profile 路由来展示用户信息。
请注意,在上面的代码中,我们还定义了一个app.secret_key
,用于生成会话密钥,这是 Flask-Social 需要的。
Flask-Social 的进阶应用:Github 登录
常见的社交登录平台当然不止 Twitter 一个,Github 作为一个开发者社交网站,也广受欢迎。于是我们在 Flask 应用程序中加入 Github 登录,只需略作更改,例如:
from flask import Flask, request, redirect, url_for, render_template, session from flask_sqlalchemy import SQLAlchemy from flask.ext.social import Social from flask.ext.social.datastore import SQLAlchemyConnectionDatastore app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' app.secret_key = 'secret' db = SQLAlchemy(app) app.config['SOCIAL_AUTH_GITHUB_KEY'] = 'your_key' app.config['SOCIAL_AUTH_GITHUB_SECRET'] = 'your_secret' social = Social(app, SQLAlchemyConnectionDatastore(db)) @app.route('/') def home(): return render_template('home.html') @app.route('/login') def login(): return social.github.authorize(callback=url_for('auth_github', next=request.args.get('next') or request.referrer or None)) @app.route('/auth/github') def auth_github(): resp = social.github.authorized_response() if resp is None: return redirect(url_for('home')) session['github_token'] = ( resp['access_token'], '' ) return redirect(url_for('profile')) @app.route('/profile') def profile(): me = social.github.get('/user') return render_template('profile.html', name=me.data['name'])
如你所见,只需修改 key 和 secret,并在 authorize()
和 authorized_response()
方法中使用 social.github
rrreee
코드는 간단합니다. 먼저 홈페이지를 정의한 다음social.twitter.authorize(를 사용하여 로그인 경로를 정의합니다. )
함수를 사용하여 로그인 페이지를 생성합니다. 다음으로 Twitter 로그인 정보 콜백을 처리하고 세션에 토큰과 비밀 정보를 저장합니다. 마지막으로 사용자 정보를 표시하기 위한 프로필 경로를 정의합니다. 🎜🎜위 코드에서는 Flask-Social에서 요구하는 세션 키를 생성하는 데 사용되는 app.secret_key
도 정의합니다. 🎜🎜Flask-Social의 고급 응용 프로그램: Github 로그인🎜🎜물론 Twitter가 유일한 일반적인 소셜 로그인 플랫폼은 아닙니다. 개발자 소셜 네트워킹 사이트로서 Github도 매우 유명합니다. 그래서 우리는 약간만 변경하여 Flask 애플리케이션에 Github 로그인을 추가했습니다. 예: 🎜rrreee🎜 보시다시피 키와 비밀만 수정하고 authorize()
및 Authorized_response()
메소드에 social.github
를 사용하여 Github 기반의 소셜 로그인을 구현합니다. 🎜🎜Flask-Social 요약🎜🎜Flask-Social을 사용하면 Flask 애플리케이션에 소셜 로그인 기능을 쉽게 추가할 수 있습니다. Flask-Social을 사용하면 OAuth 프로토콜을 수동으로 처리할 필요 없이 Python 코드를 직접 사용하여 소셜 네트워크의 API를 작동할 수 있습니다. 여러 소셜 네트워크를 지원하려면 약간의 코드 수정만 하면 됩니다. 이러한 간단한 조작으로 수많은 사용자의 고민을 줄이고 애플리케이션의 사용자 충성도와 끈기를 높일 수 있습니다. 🎜위 내용은 Flask-Social: Python 웹 애플리케이션에 소셜 로그인 추가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











React와 Flask를 사용하여 간단하고 사용하기 쉬운 웹 애플리케이션을 구축하는 방법 소개: 인터넷의 발전과 함께 웹 애플리케이션의 요구 사항은 점점 더 다양해지고 복잡해지고 있습니다. 사용 편의성과 성능에 대한 사용자 요구 사항을 충족하기 위해 최신 기술 스택을 사용하여 네트워크 애플리케이션을 구축하는 것이 점점 더 중요해지고 있습니다. React와 Flask는 프런트엔드 및 백엔드 개발을 위한 매우 인기 있는 프레임워크이며, 함께 잘 작동하여 간단하고 사용하기 쉬운 웹 애플리케이션을 구축합니다. 이 글에서는 React와 Flask를 활용하는 방법을 자세히 설명합니다.

Django와 Flask는 모두 Python 웹 프레임워크의 리더이며 둘 다 고유한 장점과 적용 가능한 시나리오를 가지고 있습니다. 이 기사에서는 이 두 프레임워크를 비교 분석하고 구체적인 코드 예제를 제공합니다. 개발 소개 Django는 모든 기능을 갖춘 웹 프레임워크이며, 주요 목적은 복잡한 웹 애플리케이션을 신속하게 개발하는 것입니다. Django는 ORM(Object Relational Mapping), 양식, 인증, 관리 백엔드 등과 같은 다양한 내장 기능을 제공합니다. 이러한 기능을 통해 Django는 대규모 처리를 수행할 수 있습니다.

Flask를 설치하는 방법과 개인 블로그를 빠르게 구축하는 방법을 처음부터 차근차근 가르쳐드리겠습니다. 글쓰기를 좋아하는 사람으로서 개인 블로그를 갖는 것은 매우 중요합니다. 경량 Python 웹 프레임워크인 Flask를 사용하면 간단하고 완전한 기능을 갖춘 개인 블로그를 빠르게 구축할 수 있습니다. 이 기사에서는 처음부터 시작하여 Flask를 설치하고 개인 블로그를 빠르게 구축하는 방법을 단계별로 가르쳐 드리겠습니다. 1단계: Python 및 pip 설치 시작하기 전에 먼저 Python 및 pi를 설치해야 합니다.

첫 번째 부분에서는 기본적인 Flask와 Intellij IDEA 통합, 프로젝트 및 가상 환경 설정, 종속성 설치 등에 대해 소개합니다. 다음으로 우리는 더 효율적인 작업 환경을 구축하기 위해 더 많은 Python 웹 애플리케이션 개발 팁을 계속 탐색할 것입니다. FlaskBlueprintsFlaskBlueprints를 사용하면 더 쉽게 관리하고 유지 관리할 수 있도록 애플리케이션 코드를 구성할 수 있습니다. Blueprint는 패키지를 구성하는 Python 모듈입니다.

Flask 프레임워크 설치 튜토리얼: Flask 프레임워크를 올바르게 설치하는 방법을 단계별로 설명합니다. 특정 코드 예제가 필요합니다. 소개: Flask는 간단하고 유연한 Python 웹 개발 프레임워크입니다. 배우기 쉽고 사용하기 쉬우며 강력한 기능이 가득합니다. 이 문서에서는 Flask 프레임워크를 올바르게 설치하는 방법을 단계별로 안내하고 참조할 수 있는 자세한 코드 예제를 제공합니다. 1단계: Python 설치 Flask 프레임워크를 설치하기 전에 먼저 Python이 컴퓨터에 설치되어 있는지 확인해야 합니다. P부터 시작할 수 있습니다.

Flask 애플리케이션 배포: Gunicorn과 suWSGI 비교 소개: 경량 Python 웹 프레임워크인 Flask는 많은 개발자들에게 사랑을 받고 있습니다. Flask 애플리케이션을 프로덕션 환경에 배포할 때 적절한 SGI(서버 게이트웨이 인터페이스)를 선택하는 것은 중요한 결정입니다. Gunicorn과 uWSGI는 두 가지 일반적인 SGI 서버입니다. 이 기사에서는 이에 대해 자세히 설명합니다.

FlaskvsFastAPI: 효율적인 WebAPI 개발을 위한 최선의 선택 소개: 현대 소프트웨어 개발에서 WebAPI는 없어서는 안 될 부분이 되었습니다. 이는 서로 다른 애플리케이션 간의 통신과 상호 운용성을 가능하게 하는 데이터와 서비스를 제공합니다. WebAPI 개발을 위한 프레임워크를 선택할 때 많은 관심을 받은 두 가지 선택은 Flask와 FastAPI입니다. 두 프레임워크 모두 매우 인기가 높으며 각각 고유한 장점이 있습니다. 이번 글에서는 Fl에 대해 알아보겠습니다.

Flask-RESTful 및 Swagger: Python 웹 애플리케이션에서 RESTful API를 구축하기 위한 모범 사례(2부) 이전 기사에서는 Flask-RESTful 및 Swagger를 사용하여 RESTful API를 구축하기 위한 모범 사례를 살펴보았습니다. Flask-RESTful 프레임워크의 기본 사항을 소개하고 Swagger를 사용하여 RESTful API에 대한 문서를 작성하는 방법을 보여주었습니다. 책
