11import type { OAuth2Adapter } from "adminforth" ;
2- import type { GithubEmail } from "./types.js" ;
32
3+ type OAuth2UserInfoLocal = {
4+ email : string ;
5+ provider ?: string ;
6+ subject ?: string ;
7+ phone ?: string ;
8+ meta ?: Record < string , any > ;
9+ fullName ?: string ;
10+ profilePictureUrl ?: string | null ;
11+ externalUserId ?: string | number | null ;
12+ } ;
13+ import type { GithubEmail } from "./types.js" ;
414export default class AdminForthAdapterGithubOauth2 implements OAuth2Adapter {
515 private clientID : string ;
616 private clientSecret : string ;
@@ -24,7 +34,7 @@ export default class AdminForthAdapterGithubOauth2 implements OAuth2Adapter {
2434 return url ;
2535 }
2636
27- async getTokenFromCode ( code : string , redirect_uri : string ) : Promise < { email : string , fullName : string , profilePictureUrl ?: string } > {
37+ async getTokenFromCode ( code : string , redirect_uri : string ) : Promise < OAuth2UserInfoLocal > {
2838 console . log ( 'Getting token from code:' , code ) ;
2939
3040 // Exchange code for token
@@ -78,12 +88,19 @@ export default class AdminForthAdapterGithubOauth2 implements OAuth2Adapter {
7888 }
7989
8090 return {
91+ provider : this . constructor . name ,
92+ subject : `${ userData . id } ` ,
8193 email : userData . email ,
8294 profilePictureUrl : userData . avatar_url ,
8395 fullName : userData . name
8496 } ;
8597 }
98+
99+ getName ( ) : string {
100+ return 'GitHub' ;
101+ }
102+
86103 getIcon ( ) : string {
87104 return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 98 98"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" style="fill: currentColor"/></svg>` ;
88105 }
89- }
106+ }
0 commit comments