-
#3.2 requestSecret Resolver인스타그램 클론 코딩/#3 GraphQL API 2019. 12. 20. 00:23
비밀값 요청 기능
https://www.randomlists.com/nouns?dup=false&qty=500 라는 사이트에서 형용사 , 명사 500개씩 복사해서 붙여준다.
1. src 폴더 안에 utils.js , words.js파일 생성
(utils.js은 시크릿 코드 작성파일, words.js은형용사,명사 붙여넣을파일)
2. words.js파일안에 다음과 같이 작성
export const adjectives = []; //형용사 export const nouns = []; //명사 // []안에 형용사 , 명사 500개 붙여넣고 alt+ shift + i 를 활용해서 "" , 추가하여 문자열로만들기
3. utils.js파일안에 다음과 같이 작성
import { adjectives, nouns } from "./words"; export const generateSecret = () => { const randomNumber = Math.floor(Math.random() * adjectives.length); return `${adjectives[randomNumber]} ${nouns[randomNumber]}`; };
4. requestSecret.graphql
type Mutation { requestSecret(email: String!): Boolean! }
5. requestSecret.js
import { generateSecret } from "../../../utils"; import { prisma } from "../../../../generated/prisma-client"; export default { Mutation: { requestSecret: async (_, args) => { const { email } = args; const loginSecret = generateSecret(); try { await prisma.updateUser({ data: { loginSecret }, where: { email } }); return true; } catch (error) { console.log(error); return false; } } } };
- 로컬호스트:4000
// 유저 생성후 ( email를 실제로 존재해야함) mutation{ createAccount(username:"정백구" , email:"wndtlr1024@gmail.com"){ id } } // email과 일치하는 유저를 찾아 loginSecret를 작성해준다. mutation{ requestSecret(email:"wndtlr1024@gmail.com") }
- 전체적인 폴더 구조
- 정리: 시크릿 코드를 유저에게 전송
'인스타그램 클론 코딩 > #3 GraphQL API' 카테고리의 다른 글
#3.4~3.6 passport JWT (0) 2019.12.22 # 3.3 Nodemailer를 이용한 sendMail 기능 (0) 2019.12.20 #3.1 계정 확인자 만들기 (Create Account Resolver) (0) 2019.12.18