mirror of
https://github.com/hpware/news-analyze.git
synced 2025-06-23 13:04:23 +00:00
feat: implement user authentication with GitHub OAuth, create database schema, and enhance navigation
This commit is contained in:
parent
d773473eb0
commit
98ffbec764
12 changed files with 167 additions and 7 deletions
8
server/api/auth/callback/github.get.ts
Normal file
8
server/api/auth/callback/github.get.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
export default defineEventHandler(async (event) => {
|
||||
|
||||
})
|
||||
|
||||
async function findUser(githubUser: any) {
|
||||
console.log("Github User: " + githubUser);
|
||||
|
||||
}
|
16
server/api/auth/github.get.ts
Normal file
16
server/api/auth/github.get.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
import crypto from "node:crypto"
|
||||
export default defineEventHandler(async (event) => {
|
||||
const baseUrl = event.node.req.headers.host
|
||||
const protocol = process.env.NODE_ENV === "production" ? "https": "http"
|
||||
const clientId = process.env.NUXT_GITHUB_CLIENT_ID;
|
||||
const callbackUrl = `${protocol}://${baseUrl}/api/auth/github/callback`;
|
||||
const state = crypto.randomBytes(16).toString("hex");
|
||||
setCookie(event, 'oauth_state', state, {
|
||||
httpOnly: true,
|
||||
secure: process.env.NODE_ENV === 'production',
|
||||
maxAge: 60 * 10,
|
||||
path: '/',
|
||||
})
|
||||
const authorizationUrl = `https://github.com/login/oauth/authorize?client_id=${clientId}&redirect_uri=${encodeURIComponent(callbackUrl)}&scope=read:user,user:email&state=${state}`
|
||||
await sendRedirect(event, authorizationUrl, 302)
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue