Rumah > pembangunan bahagian belakang > Tutorial Python > Flask-Social: Menambah log masuk sosial pada aplikasi web Python anda

Flask-Social: Menambah log masuk sosial pada aplikasi web Python anda

PHPz
Lepaskan: 2023-06-17 11:37:41
asal
838 orang telah melayarinya

Dengan perkembangan pesat media sosial, semakin banyak laman web dan aplikasi mula menggunakan log masuk sosial untuk memudahkan proses pendaftaran dan log masuk pengguna. Walau bagaimanapun, melaksanakan fungsi tersebut bukanlah mudah. Bagaimana untuk berinteraksi dengan rangkaian sosial melalui protokol OAuth? Bagaimana untuk menggunakan maklumat pengguna yang diperolehi? Bagaimana untuk menangani kebenaran dan keselamatan? Nasib baik, terdapat sambungan aplikasi Python yang sangat baik seperti Flask-Social yang boleh membantu kami mencapai fungsi ini dengan lebih mudah. Artikel ini akan memperkenalkan penggunaan dan prinsip asas Flask-Social.

Pemasangan dan konfigurasi Flask-Social

Mula-mula, kita perlu memasang Flask-Social. Gunakan alat pip untuk memasang dengan cepat:

pip install Flask-Social
Salin selepas log masuk

Selepas pemasangan selesai, kita perlu mengkonfigurasi Flask-Social dalam projek Flask. Mula-mula memperkenalkannya dalam aplikasi 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))
Salin selepas log masuk

Dalam kod di atas, kami mula-mula memperkenalkan perpustakaan pergantungan yang diperlukan, termasuk Flask, SQLAlchemy dan Flask-Social. Kemudian, kami mentakrifkan aplikasi Flask dan pangkalan data SQLAlchemy, serta URL untuk disambungkan ke pangkalan data. Seterusnya, kami menetapkan kunci dan rahsia untuk pengesahan Twitter digunakan di sini sebagai contoh, maklumat dari platform media sosial lain juga boleh digunakan. Akhir sekali, mulakan contoh Social melalui kelas social dan sambungkannya dengan kelas SQLAlchemyConnectionDatastore.

Penggunaan asas Flask-Social

Dengan tetapan di atas, kami kini boleh menggunakan Flask-Social untuk menambah fungsi log masuk sosial. Katakan kami ingin menambah log masuk Twitter dalam aplikasi kami, kami boleh menggunakan kod berikut:

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')
Salin selepas log masuk

Kod di sini adalah mudah: kami mula-mula menentukan halaman utama, kemudian kami menentukan laluan log masuk, menggunakan fungsi social.twitter.authorize() Hasilkan halaman log masuk. Seterusnya, kami mengendalikan panggilan balik maklumat log masuk Twitter dan menyimpan token dan rahsia dalam sesi. Akhir sekali, kami menentukan laluan profil untuk memaparkan maklumat pengguna.

Sila ambil perhatian bahawa dalam kod di atas, kami juga mentakrifkan app.secret_key yang digunakan untuk menjana kunci sesi, yang diperlukan oleh Flask-Social.

Aplikasi lanjutan Flask-Social: Log masuk Github

Sudah tentu, Twitter bukan satu-satunya platform log masuk sosial yang biasa Sebagai tapak rangkaian sosial pembangun, Github juga sangat popular. Jadi kami menambah log masuk Github pada aplikasi Flask dengan hanya sedikit perubahan, contohnya:

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'])
Salin selepas log masuk

Seperti yang anda lihat, cuma ubah suai kunci dan rahsia dan gunakannya dalam kaedah authorize() dan authorized_response() social.github Log masuk sosial berdasarkan Github boleh direalisasikan.

Ringkasan Flask-Social

Dengan Flask-Social, kami boleh menambah kefungsian log masuk sosial pada aplikasi Flask kami dengan mudah. Menggunakan Flask-Social, kami boleh terus menggunakan kod Python untuk mengendalikan API rangkaian sosial tanpa perlu berurusan dengan protokol OAuth secara manual. Jika anda ingin menyokong berbilang rangkaian sosial, yang diperlukan hanyalah sedikit pengubahsuaian kod. Dengan operasi yang begitu mudah, anda akan mengurangkan masalah pengguna yang tidak terkira banyaknya dan meningkatkan kesetiaan pengguna dan kelekatan aplikasi anda.

Atas ialah kandungan terperinci Flask-Social: Menambah log masuk sosial pada aplikasi web Python anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan