Github login
This commit is contained in:
@@ -20,10 +20,10 @@ export default NextAuth({
|
|||||||
token: "https://github.com/login/oauth/access_token",
|
token: "https://github.com/login/oauth/access_token",
|
||||||
userinfo: "https://api.github.com/user",
|
userinfo: "https://api.github.com/user",
|
||||||
profile(profile) {
|
profile(profile) {
|
||||||
console.log(profile)
|
|
||||||
return {
|
return {
|
||||||
id: profile.id.toString(),
|
id: profile.id.toString(),
|
||||||
name: profile.name || profile.login,
|
name: profile.name || profile.login,
|
||||||
|
username: profile.login,
|
||||||
email: profile.email,
|
email: profile.email,
|
||||||
image: profile.avatar_url,
|
image: profile.avatar_url,
|
||||||
}
|
}
|
||||||
@@ -34,15 +34,16 @@ export default NextAuth({
|
|||||||
],
|
],
|
||||||
callbacks: {
|
callbacks: {
|
||||||
async jwt({ token, user, account, profile, isNewUser }) {
|
async jwt({ token, user, account, profile, isNewUser }) {
|
||||||
console.log('jwt', { token, account })
|
|
||||||
if (account && account.access_token) {
|
if (account && account.access_token) {
|
||||||
token.accessToken = account.access_token;
|
token.accessToken = account.access_token;
|
||||||
|
token.username = user?.username || '';
|
||||||
}
|
}
|
||||||
return token
|
return token
|
||||||
},
|
},
|
||||||
async session({ session, token }) {
|
async session({ session, token }) {
|
||||||
console.log('session', { token, session })
|
session.accessToken = token.accessToken as string;
|
||||||
session.accessToken = token.accessToken;
|
const user = { ...session.user, username: token.username };
|
||||||
|
session['user']['username'] = token.username as string;
|
||||||
return session
|
return session
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
13
types/next-auth.d.ts
vendored
Normal file
13
types/next-auth.d.ts
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import NextAuth, { User } from "next-auth"
|
||||||
|
|
||||||
|
declare module "next-auth" {
|
||||||
|
/**
|
||||||
|
* Returned by `useSession`, `getSession` and received as a prop on the `SessionProvider` React Context
|
||||||
|
*/
|
||||||
|
interface Session {
|
||||||
|
user: User & {
|
||||||
|
username: string;
|
||||||
|
}
|
||||||
|
accessToken?: string;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user