Using GithubAPI + NextAuth Github Provider to access a User's repo information.

I am building an app where will allow users to login with Github and view their Github accounts data ( Repos and issues ). A good example would be vercel or netlify, which accesses a user's public repos.

I currently have Github Auth Configured...

// auth.ts
 providers: [
    GithubProvider({
      clientId: env.GITHUB_CLIENT_ID,
      clientSecret: env.GITHUB_CLIENT_SECRET,
      // Notice the scope of user here
      authorization: {params: {scope: 'user'}}
    })


// user.ts

  getUserGithub: protectedProcedure.query(async ({ ctx }) => {
 
    const account = await ctx.prisma.account.findFirst({
      where: {
        userId: ctx.session.user.id,
      },
     include: {
      user: true
     },
    })

    const accessToken = account?.access_token;
    
    const response = await fetch(`https://api.github.com/user`, {
      headers: {Authentication: `Bearer ${accessToken}`}
    });

    const userData = response.json()

    return userData;

  }),
  


and when attempting to print out the result...

  {JSON.stringify(userAccount.data)}


...I get the message "message":"Requires authentication","documentation_url":"https://docs.github.com/rest/reference/users#get-the-authenticated-user"}

I am not sure where I am going wrong. I would attempt to hit the api.github.com/users/{username} endpoint, but I do not have access to the user's {username}.

I would appreciate any help and direction others could provide. Thanks !
Was this page helpful?