[PBA] — create account

hansol yang
3 min readJul 27, 2019

--

Create Account

  • 대부분의 기능은 prisma 의 playground 기능을 활용하면 필요한 것들이 뭐가 있는지 찾을 수 있다.
type Mutation {
createAccount(
email: String!
username: String!
firstName: String
lastName: String
bio: String
): User!
}

로그인에 필요한 정보들을 Mutation 에 담는다. email 과 username 은 필수 요소로 지정한다.

import { prisma } from "../../../../generated/prisma-client";export default {
Mutation: {
createAccount: async (_, args) => {
const { email = "", username = "", firstName, lastName, bio } = args;
const user = await prisma.createUser({
email,
username,
firstName,
lastName,
bio
});
return user;
}
}
};

args 에 지정한 값들을 가져와서 unpacked 하고 그 값들을 prisma 의 createUser 를 활용해서 연결한다.

Login Secret

  • -request secret 은 secret 값을 생성해서 메일로 전달하고 그 값을 확인하는 방식으로 작동한다.
    그렇기 때문에 유니크한 이메일을 인자로 갖고, 그 값으로 Boolean 값을 리턴해 확인한다.
    resolvers 에서 args 로 부터 email 을 갖고 오고,
    secret 값을 생성하는 파일로부터 값을 가져와서 loginSecret 에 담는다.
    try, catch 를 써서 값을 요청하고 그에 따라 true 또는 false 를 리턴한다.
try {
await prisma.update({ data: { loginSecret }, where: { email }})
return true;
} catch {
console.error(error);
return false;
}

secret 값은 여러 단어들을 저장해두고 Math 함수를 사용해 randomNumber 를 생성하고, 그것을 연결한 값을 만들어 낸다.
해당 파일은 api 바깥에 따로 폴더를 만들어서 저장해 두었다.
api 폴더 안에는 typeDefs 와 resolvers 만 넣어야 한다!!

--

--

No responses yet