GitHub OAuth 認證示例

GitHub鏈接:github_auth

流程圖

在這里插入圖片描述

功能特性

  • ? GitHub OAuth 認證
  • ? 獲取用戶基本信息
  • ? 顯示用戶的 GitHub 倉庫列表
  • ? 安全的會話管理
  • ? 響應式用戶界面

技術棧

后端

  • Flask - Python Web 框架
  • Flask-CORS - 跨域資源共享
  • Requests - HTTP 庫
  • Session - 會話管理

前端

  • React - 用戶界面庫
  • React Router - 路由管理
  • Axios - HTTP 客戶端
  • CSS3 - 樣式設計

項目結構

github_auth/
├── app.py                 # Flask 后端應用
├── package.json          # Node.js 依賴配置
├── public/
│   └── index.html        # HTML 模板
├── src/
│   ├── App.js            # React 主應用組件
│   ├── App.css           # 應用樣式
│   ├── index.js          # React 入口文件
│   └── components/
│       ├── Home.js       # 首頁組件
│       ├── AuthSuccess.js # 認證成功頁面
│       └── Dashboard.js  # 用戶儀表板
└── README.md

快速開始

前置要求

  • Python 3.11+
  • Node.js 16+
  • GitHub 賬號

1. 創建 GitHub OAuth 應用

  1. 訪問 GitHub Developer Settings
  2. 點擊 “New OAuth App”
  3. 填寫應用信息:
    • Application name: GitHub Auth Demo
    • Homepage URL: http://localhost:3000
    • Authorization callback URL: http://localhost:5000/auth/github/callback
  4. 獲取 Client IDClient Secret

2. 配置環境

app.py 中更新你的 GitHub OAuth 配置:

GITHUB_CLIENT_ID = 'your_client_id_here'
GITHUB_CLIENT_SECRET = 'your_client_secret_here'

3. 安裝依賴

后端依賴
# 使用 uv (推薦)
uv sync# 或使用 pip
pip install flask flask-cors requests
前端依賴
npm install

4. 啟動應用

啟動后端服務器
# 使用 uv
uv run python app.py# 或直接運行
python app.py

后端服務器將在 http://localhost:5000 啟動

啟動前端開發服務器
npm start

前端應用將在 http://localhost:3000 啟動
在這里插入圖片描述

5. 使用應用

  1. 打開瀏覽器訪問 http://localhost:3000
  2. 點擊 “使用 GitHub 登錄” 按鈕
  3. 在 GitHub 授權頁面確認授權
  4. 成功登錄后查看用戶信息和倉庫列表

API 端點

認證相關

  • GET /auth/github - 重定向到 GitHub OAuth 授權頁面
  • GET /auth/github/callback - 處理 GitHub OAuth 回調
  • POST /api/logout - 用戶登出

用戶數據

  • GET /api/user - 獲取當前登錄用戶信息
  • GET /api/repos - 獲取用戶的 GitHub 倉庫列表

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84643.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84643.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84643.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

百度蘿卜快跑攜4顆禾賽激光雷達進軍迪拜,千輛L4無人車開啟全球化戰略

3月28日,百度旗下自動駕駛出行服務平臺“蘿卜快跑”宣布在迪拜市區啟動無人駕駛規模化測試及服務,計劃部署超1000輛L4級全無人駕駛汽車。此次出海不僅是蘿卜快跑首次在中國以外地區實現規模化落地,更以“單車搭載4顆禾賽激光雷達”的硬件配置引發行業關注,標志著中國自動駕…

湖北師范大學人工智能與計算機學院電子信息研究生課程《隨機過程》第六次作業

一. 計算題(共10題,100分) 1. (計算題, 10分)隨機信號 的實測樣本函數如題圖(a)與(b)所示, ,期中X為隨機變量, ,試說明它們可能是均值各態歷經的嗎?(寫明道理&#xff…

解決Windows Server打開DNS提示“拒絕訪問”和“RPC服務器不可用”

問題背景 在一個活動目錄域xyzz.internal中,有兩臺域控制器(Domain Controller),各位于一個站點。 問題 當我們在其中一臺域控制器上的服務器管理器中打開DNS管理工具時,卻看到類似如下錯誤,提示拒絕訪問…

Python中字符串常用的操作方法

在Python中,字符串是不可變序列類型,提供了豐富的內置方法。以下是常用的字符串操作方法及示例: 1. 大小寫轉換 lower() 轉小寫 upper() 轉大寫 capitalize() 首字母大寫 title() 每個單詞首字母大寫 swapcase() 大小寫互換 print(&q…

利用百度/高德地圖API實現車輛軌跡跟蹤系統

利用百度/高德地圖API實現車輛軌跡跟蹤系統 摘要: 本文詳細闡述了如何利用百度地圖API或高德地圖API構建一套完整的車輛軌跡跟蹤系統。內容涵蓋系統架構設計、數據采集與傳輸、地圖API核心功能實現(地圖展示、軌跡繪制、實時定位、歷史軌跡回放)、關鍵優化技術(軌跡糾偏、…

解鎖K-近鄰算法:數據挖掘的秘密武器

目錄 一、K - 近鄰算法是什么二、算法原理深度剖析2.1 核心思想2.2 距離度量方式2.3 K 值的選擇2.4 分類決策規則 三、K - 近鄰算法實踐3.1 準備數據集3.2 代碼實現步驟3.3 結果分析與評估 四、K - 近鄰算法優缺點4.1 優點闡述4.2 缺點分析 五、應用案例展示5.1 圖像識別領域5.…

華為OD機試_2025 B卷_構成正方形數量(Python,100分)(附詳細解題思路)

題目描述 輸入N個互不相同的二維整數坐標&#xff0c;求這N個坐標可以構成的正方形數量。[內積為零的的兩個向量垂直] 輸入描述 第一行輸入為N&#xff0c;N代表坐標數量&#xff0c;N為正整數。N < 100 之后的 K 行輸入為坐標x y以空格分隔&#xff0c;x&#xff0c;y為整…

Qt:智能指針QScopedPointer使用

QScopedPointer和C中的智能指針std::unique_ptr其概念是一樣的&#xff0c;它包裝了new操作符在堆上分配的動態對象&#xff0c;能夠保證動態創建的對象在任何時候都可以被正確地刪除。但它有更嚴格的所有權&#xff0c;并且不能轉讓&#xff0c;一旦獲取了對象的管理權&#x…

TensorFlow基礎之理解計算圖

Tensor Flow TensorFlow 本章介紹TensorFlow的基礎。特別地&#xff0c;你將學習如何用TensorFlow進行基礎計算。在開始使用 TensorFlow之前,你必須理解它背后的哲學。 這個庫基于計算圖的概念&#xff0c;如果你不理解計算圖是如何工作的&#xff0c;你就不能理解如何使用這…

【HarmonyOS Next之旅】DevEco Studio使用指南(三十五) -> 配置構建(二)

目錄 1 -> 定制HAP多目標構建產物 1.1 -> 定義產物的HAP包名 1.2 -> 定義產物的deviceType 1.3 -> 定義產物的distributionFilter 1.4 -> 定義產物preloads的分包 1.5 -> 定義產物的source源碼集-pages 1.6 -> 定義產物的source源碼集-sourceRoots…

[muduo] ThreadPool | TcpClient | 異步任務 | 通信測試

第九章&#xff1a;線程池&#xff08;ThreadPool&#xff09; 在第八章《TcpServer》中&#xff0c;我們了解到muduo::net::TcpServer通過EventLoop線程池處理入站連接。 這些EventLoop線程主要負責網絡I/O&#xff1a;套接字讀寫和定時器處理&#xff0c;由Poller和Channel…

【筆記】解決部署國產AI Agent 開源項目 MiniMax-M1時 Hugging Face 模型下載報錯解決方案

MiniMax-AI/MiniMax-M1&#xff1a;MiniMax-M1&#xff0c;世界上第一個開放權重、大規模的混合注意力推理模型。 一、問題背景 【筆記】解決部署國產AI Agent 開源項目 MiniMax-M1時 Hugging Face 模型下載緩存占滿 C 盤問題&#xff1a;更改緩存位置全流程-CSDN博客 在執行hu…

新手如何利用AI助手Cursor生成復雜項目

新手如何利用AI助手Cursor生成復雜項目 在編程學習的道路上&#xff0c;AI工具正成為新手開發者的得力助手。本文將介紹如何借助Cursor這一強大的AI代碼助手&#xff0c;從零開始構建復雜項目。 一、基礎準備工作 作為編程新手&#xff0c;面對復雜項目時常常不知從何下手。利…

【Fargo】x264的intra refresh 3: 采集、編碼到 RTP打包

實際調試默認并么有打開b_intra_refresh D:\XTRANS\thunderbolt\ayame\zhb-bifrost\player-only\echo\codec\x264\echo_h264_encoder.cpp 即使打開了b_intra_refresh,也不影響RTP打包: 但是有一些要注意的地方: RFC 6184(“RTP Payload Format for H.264 Video”) intra …

Vue3 的生命周期:從 Composition API 視角看

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 &#x1f35a; 藍橋云課簽約作者、…

面向互聯網大廠Java崗位面試:Spring Boot與微服務架構的深入探討

面向互聯網大廠Java崗位面試&#xff1a;Spring Boot與微服務架構的深入探討 問題1&#xff1a;什么是Spring Boot&#xff0c;它如何簡化Spring應用程序的開發&#xff1f; 簡潔回答&#xff1a; Spring Boot是一個基于Spring框架的開源Java平臺&#xff0c;旨在簡化新Sprin…

【信號與系統四】采樣和通信系統

在一定條件之下&#xff0c;一個連續時間信號完全可以用該信號在等時間間隔點上的值或樣本來表示&#xff0c;并且可以用這些樣本值把該信號全部恢復出來。這個稍微有點使人吃驚的性質來自于采樣定理。 例如一幀一幀的電影畫面&#xff0c;在我們大腦中構成連續的生活情節 接…

關于球面投影SphericalProjector的介紹以及代碼開發

球面投影的幾何背景 什么是球面投影&#xff1f; 球面投影將 2D 圖像中的像素點&#xff08;通常是平面&#xff09;映射到一個虛擬的球面上&#xff0c;再將球面上的角度&#xff08;經度、緯度&#xff09;展開到平面圖上。它是廣角圖像拼接、全景圖生成中常用的投影方法。…

wordpress外貿獨立站常用留言表單插件 contact form 7

Contact Form 7 介紹 Contact Form 7 是一款非常流行的 WordPress 聯系表單插件&#xff0c;廣泛應用于外貿獨立站。以下是其主要特點&#xff1a; 功能強大且免費&#xff1a;Contact Form 7 是完全免費的&#xff0c;支持創建和管理多個聯系表單。 簡單易用&#xff1a;用…

佰力博科技與您探討油浴極化的優點及工藝流程

一、油浴極化的優點 溫度范圍寬&#xff1a;油浴極化適用于較寬的溫度范圍&#xff0c;適合不同材料的極化需求。 絕緣強度高&#xff1a;油浴介質具有良好的絕緣性能&#xff0c;能夠承受較高的極化電場。 防潮性好&#xff1a;油浴極化在潮濕環境中仍能保持良好的絕緣性能。 …