File tree Expand file tree Collapse file tree 2 files changed +26
-2
lines changed
src/app/api/auth/login/github Expand file tree Collapse file tree 2 files changed +26
-2
lines changed Original file line number Diff line number Diff line change @@ -24,6 +24,26 @@ export const GET = async (request: NextRequest) => {
2424 } ,
2525 } ) ;
2626 const githubUser : GitHubUser = await githubUserResponse . json ( ) ;
27+ if ( ! githubUser . email ) {
28+ const githubEmailsResponse = await fetch (
29+ "https://api.github.com/user/emails" ,
30+ {
31+ headers : {
32+ Authorization : `Bearer ${ tokens . accessToken } ` ,
33+ } ,
34+ }
35+ ) ;
36+ const githubEmails : {
37+ email : string ;
38+ primary : boolean ;
39+ verified : boolean ;
40+ } [ ] = await githubEmailsResponse . json ( ) ;
41+ const verifiedEmail = githubEmails . find (
42+ ( email ) => email . primary && email . verified
43+ ) ;
44+ if ( verifiedEmail ) githubUser . email = verifiedEmail . email ;
45+ }
46+
2747 const existingUser = await db . user . findUnique ( {
2848 where : {
2949 githubId : githubUser . id ,
@@ -52,9 +72,11 @@ export const GET = async (request: NextRequest) => {
5272 name : githubUser . name ,
5373 email : githubUser . email ,
5474 picture : githubUser . avatar_url ,
75+ emailVerified : Boolean ( githubUser . email ) ,
5576 } ,
5677 } ) ;
57- sendWelcomeEmail ( { toMail : newUser . email ! , userName : newUser . name ! } ) ;
78+ if ( githubUser . email )
79+ sendWelcomeEmail ( { toMail : newUser . email ! , userName : newUser . name ! } ) ;
5880 const session = await lucia . createSession ( newUser . id , { } ) ;
5981 const sessionCookie = lucia . createSessionCookie ( session . id ) ;
6082 cookies ( ) . set (
Original file line number Diff line number Diff line change @@ -4,7 +4,9 @@ import { github } from "~/lib/lucia";
44
55export const GET = async ( ) => {
66 const state = generateState ( ) ;
7- const url = await github . createAuthorizationURL ( state ) ;
7+ const url = await github . createAuthorizationURL ( state , {
8+ scopes : [ "user:email" , "read:user" ] ,
9+ } ) ;
810
911 cookies ( ) . set ( "github_oauth_state" , state , {
1012 path : "/" ,
You can’t perform that action at this time.
0 commit comments