這次我想要和大家分享我學習如何使用 Flask-Login 這個套件,並串接 Google 登入的過程。Flask-Login 是一個用於 Flask 框架的擴充套件,可以協助我們輕易實現用戶登錄的功能。而 Google 登入則是一種由 Google 提供的 OAuth 2.0 驗證機制,可以讓使用者在網站上使用 Google 帳號進行登入。
為了實現 Google 登入的功能,我們需要進行以下三個步驟:
步驟一:建立 Google Cloud Platform 專案
首先,我們需要建立一個 Google Cloud Platform 專案,並申請一個 Google 登入的 API Key。建立專案的步驟如下:
- 前往 Google Cloud Console,建立一個新專案。
- 選擇「API 和服務」,並啟用 Google+ API。
- 選擇「憑證」,並建立一個 OAuth 用戶端 ID。
- 選擇「網路應用程式」,並輸入應用程式名稱和授權 JavaScript 來源。
-
設定授權範圍和授權回調 URI。
在建立 Google Cloud Platform 專案時,需要設定「授權範圍」和「授權回調 URI」。授權範圍是指 Google 登入所需要的權限,例如使用者的基本資料或是 Gmail 的存取權限等等。授權回調 URI 則是 Google 登入完成後,要導向的網址。在設定授權回調 URI 時,請記得將網址設定為 Flask 程式的網址,例如http://localhost:5000/google-login
。 - 複製用戶端 ID 和用戶端密鑰,以供 Flask 程式使用。
步驟二:安裝 Flask-Login 套件
接著,我們需要在我們的 Flask 程式中安裝 Flask-Login 套件。可以使用以下的指令進行安裝:
pip install flask-login
步驟三:實現 Google 登入功能
最後,我們需要在我們的 Flask 程式中實現 Google 登入的功能。具體的步驟可以參考以下的程式碼:
# 設定 Google 登入的回調網址
google_blueprint = make_google_blueprint(
client_id='YOUR_CLIENT_ID',
client_secret='YOUR_CLIENT_SECRET',
scope=['profile', 'email'],
redirect_url='/google-login'
)
# 設定 login_manager
login_manager = LoginManager()
login_manager.login_view = 'login'
login_manager.init_app(app)
@login_manager.user_loader
def load_user(user_id):
return User.get(user_id)
# 設定 login 路由
@app.route('/login')
def login():
return render_template('login.html')
# 設定 google-login 路由
@app.route('/google-login')
def google_login():
if not current_user.is_authenticated:
return redirect(url_for('google.login'))
else:
return redirect(url_for('index'))
# 設定 logout 路由
@app.route('/logout')
@login_required
def logout():
logout_user()
return redirect(url_for('index'))
結語
透過以上的步驟,我們已經成功地實現了 Google login 的功能。如果大家想要進一步學習 Flask-Login 和 Google login 的相關知識,可以參考以下的參考資料:
希望這篇文章對大家有所幫助,如果有任何問題或建議,歡迎在下方留言!
0 Comments