mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-02-12 18:32:44 +00:00
feat: github connect uses user id instead of username
This commit is contained in:
@@ -68,6 +68,9 @@ async function connect(db) {
|
||||
accessTokens: {
|
||||
github: r.accessToken,
|
||||
},
|
||||
externalIDs: {
|
||||
github: r.profile.id,
|
||||
},
|
||||
username: r.username,
|
||||
emails: r.profile.emails.map((email) => {
|
||||
return { email: email.value, default: false };
|
||||
|
||||
@@ -5,6 +5,9 @@ const UserSchema = new Schema({
|
||||
accessTokens: {
|
||||
github: { type: String },
|
||||
},
|
||||
externalIDs: {
|
||||
github: { type: String },
|
||||
},
|
||||
username: {
|
||||
type: String,
|
||||
index: { unique: true },
|
||||
|
||||
@@ -4,7 +4,9 @@ export interface IUser {
|
||||
accessTokens: {
|
||||
github: string;
|
||||
};
|
||||
|
||||
externalIDs: {
|
||||
github: string;
|
||||
};
|
||||
username: string;
|
||||
emails: {
|
||||
email: string;
|
||||
|
||||
@@ -8,6 +8,7 @@ import * as express from "express";
|
||||
|
||||
import config from "../../config";
|
||||
import UserModel from "../database/users/users.model";
|
||||
import { IUserDocument } from "../database/users/users.types";
|
||||
|
||||
const RedisStore = connectRedis(session);
|
||||
|
||||
@@ -28,9 +29,9 @@ const verify = async (
|
||||
profile: Profile,
|
||||
done: OAuth2Strategy.VerifyCallback
|
||||
): Promise<void> => {
|
||||
let user;
|
||||
let user: IUserDocument;
|
||||
try {
|
||||
user = await UserModel.findOne({ username: profile.username });
|
||||
user = await UserModel.findOne({ "externalIDs.github": profile.id });
|
||||
const email = profile.emails ? profile.emails[0]?.value : null;
|
||||
const photo = profile.photos ? profile.photos[0]?.value : null;
|
||||
if (user) {
|
||||
|
||||
Reference in New Issue
Block a user