diff --git a/app/login/page.tsx b/app/login/page.tsx
index 764b09d..0bf2a6e 100644
--- a/app/login/page.tsx
+++ b/app/login/page.tsx
@@ -1,6 +1,7 @@
'use client';
import { signIn } from 'next-auth/react';
+import { FaGithub, FaGoogle } from "react-icons/fa";
export default function LoginPage() {
return (
@@ -8,16 +9,22 @@ export default function LoginPage() {
Worklog
Track your billable hours
-
-
+
+
+
+
);
diff --git a/auth.ts b/auth.ts
index 3348652..94b0810 100644
--- a/auth.ts
+++ b/auth.ts
@@ -1,5 +1,6 @@
import { NextAuthOptions } from 'next-auth';
import GithubProvider from 'next-auth/providers/github';
+import GoogleProvider from 'next-auth/providers/google';
export const authOptions: NextAuthOptions = {
secret: process.env.NEXTAUTH_SECRET,
@@ -9,6 +10,10 @@ export const authOptions: NextAuthOptions = {
clientId: process.env.AUTH_GITHUB_ID!,
clientSecret: process.env.AUTH_GITHUB_SECRET!,
}),
+ GoogleProvider({
+ clientId: process.env.GOOGLE_CLIENT_ID!,
+ clientSecret: process.env.GOOGLE_CLIENT_SECRET!
+ })
],
pages: {
signIn: '/login',
diff --git a/package-lock.json b/package-lock.json
index bc80ed2..e9e8a2e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,8 @@
"pg": "^8.18.0",
"prisma": "^7.4.0",
"react": "19.2.4",
- "react-dom": "19.2.4"
+ "react-dom": "19.2.4",
+ "react-icons": "^5.6.0"
},
"devDependencies": {
"@edge-runtime/primitives": "^6.0.0",
@@ -31,6 +32,7 @@
"@types/pg": "^8.16.0",
"@types/react": "^19",
"@types/react-dom": "^19",
+ "@types/react-icons": "^2.2.7",
"eslint": "^9.39.2",
"eslint-config-next": "16.1.6",
"eslint-config-prettier": "^10.1.8",
@@ -3393,6 +3395,27 @@
"@types/react": "^19.2.0"
}
},
+ "node_modules/@types/react-icon-base": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@types/react-icon-base/-/react-icon-base-2.1.6.tgz",
+ "integrity": "sha512-ebbN1JjCm6RxBd3HdI1+8VCdiOI4qMjnl9DIHWJFrB/eYLF4mzIgdL34PIqCJBLY3vlwil9v6IHQvzsa8vgMsg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-icons": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/@types/react-icons/-/react-icons-2.2.7.tgz",
+ "integrity": "sha512-qxc8xtwgDG5Ub/WILU9tZa7zxz2UZqOU4yXbBa+Xg+0LbP031NB9gvf1d/ALvHLGCsCf3WEVttNoW/wc30jn1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*",
+ "@types/react-icon-base": "*"
+ }
+ },
"node_modules/@types/stack-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
@@ -10594,6 +10617,15 @@
"react": "^19.2.4"
}
},
+ "node_modules/react-icons": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.6.0.tgz",
+ "integrity": "sha512-RH93p5ki6LfOiIt0UtDyNg/cee+HLVR6cHHtW3wALfo+eOHTp8RnU2kRkI6E+H19zMIs03DyxUG/GfZMOGvmiA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
diff --git a/package.json b/package.json
index 39e0823..309b091 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,8 @@
"pg": "^8.18.0",
"prisma": "^7.4.0",
"react": "19.2.4",
- "react-dom": "19.2.4"
+ "react-dom": "19.2.4",
+ "react-icons": "^5.6.0"
},
"devDependencies": {
"@edge-runtime/primitives": "^6.0.0",
@@ -35,6 +36,7 @@
"@types/pg": "^8.16.0",
"@types/react": "^19",
"@types/react-dom": "^19",
+ "@types/react-icons": "^2.2.7",
"eslint": "^9.39.2",
"eslint-config-next": "16.1.6",
"eslint-config-prettier": "^10.1.8",