2017-12-23 23 views
-1

나는 코드를 배우는 중이며 Express를 사용하여 노드에 웹 응용 프로그램을 만들려고 시도하고 있습니다 (올바른 문구라고 생각합니다).psql 테이블을 반복하여 사용자 로그 이메일 및 비밀번호 확인

user_id, 전자 메일 및 암호를 저장하는 postgresql에 테이블 ('users')이 있습니다.

사용자가 웹 사이트에 로그인 할 때 테이블을 순환하여 이메일이 존재하고 비밀번호와 일치하는지 확인한 다음 로그인 할 수 있고 로그인 한 경우 - 고유 한 user_id가 할당되고 가능하다면 knex를 통합하고 싶습니다.

나는 어떻게 이런 일을 할 수 있으며 올바른 조언을 주시거나 올바른 방향으로 가리켜 주시면 감사하겠습니다. 당신이 돌아 오기 결과가 user_id를 포함하거나 다음 사용자가 존재 반환 원하는 경우

감사

+0

이것은 간단한 SELECT 쿼리입니다. 어떤 것을 시도하고 어떤 문제가 있습니까? –

답변

0

SELECT 
    user_id 
    FROM users 
    WHERE 
    email = _your_user_email 
    AND password = _your_user_password; 

첫 번째 기본 뭔가를보십시오. 전자 메일을 확인하여 전자 메일을 확인하고 전자 메일이 있지만 암호가 틀리다고 사용자에게 알릴 수 있습니다. 간단한 방법을 먼저 시도하여 필요에 맞는지 확인하십시오.

0

우선 id 필드의 users 테이블의 이름을 id으로 지정하는 것이 좋습니다. 그것은 <tablename>_id (ITER와 clothes.user_id에 대한 예를 표 clothes.id 고유 식별자입니다. - 테이블 users에 외래 키)로 idid 등의 분야 및 참조 열 이름을하는 것이 좋습니다.

두 번째로 데이터베이스를 비밀번호로 원시 데이터로 저장하는 것이 좋습니다 (보안상의 이유로). 사용자 암호를 해시 된 데이터로 유지하는 것이 일반적입니다. 예를 들어, bcrypt 패키지를 살펴보십시오.

knex이 수의 관점에서

select 
    id, 
    email, 
    <any_other_field_you_need> 
from 
    users 
where 
    email = '[email protected]' 
    and password = 'your password hash' 

같은 쿼리를 작성 필요 (데이터베이스의 관점에서 "루프"와 같은 것이, 그것은 "쿼리"라고이 없음) 사용자를 선택하려면 당신은 명시 body에서 얻을

knex('users') 
    .select(['id', 'email', '<any_other_field_you_need>']) 
    .where('email', '[email protected]') 
    .where('password', 'your password hash') 

귀하의 검색어 매개 변수 (이메일, 비밀번호)

을 할 수 기록. POST HTTP 메소드를 사용하여 요청을 보내고 데이터를 본문으로 전달해야합니다.

혹시 express을 모른다면 - npm package입니다. 웹 서비스를 만드는 데 도움이됩니다. 그들은 공식 웹 사이트의 안녕하세요 세계 guide 있습니다. 자유롭게 그것을 확인하십시오. 아니면 그냥 초보자를위한 "표현 튜토리얼"구글에 대한 인터넷을 통해 위대한 자습서가 많이 있습니다. 꽤 인기가 있어요.