OAuth2 토큰 교환이 끝나면 필드 I이있는 구조체 (예 : GoogleUser)로 비 정렬 화 된 사용자 데이터의 JSON 배열이 [일반적으로] 남아 있습니다. 신경 써.OAuth 응답 및 세션 처리
내 DB에 데이터를 기록하는 합리적인 방법은 무엇입니까? 콜백 처리기에서 CreateUser
함수를 호출하고 구조체를 전달한 다음 사용자가 이미 DB에 존재하지 않는지 확인한 후 저장하십시오.
콜백 핸들러에 세션 토큰 (예 : session.Values["authenticated"] == true
)을 생성하고 쿠키에 적절한 만료일을 저장하고 로그인 한 상태의 모든 처리기 함수에 대해 if authenticated == true
을 확인한다고 가정합니다 사용자? 또는 관리자 핸들러의 경우 : if admin_user == true
. 여기에 어떤 위험이 있습니까? HTTPS를 통해 보안 쿠키를 사용하고 있다고 생각하십니까?
기본 질문에 사과 : 그냥 "베스트 프랙티스"방법으로 사용자를 w/OAuth로 로그인하는 방법을 알아 내려고합니다.
위대한; 매우 감사합니다. 나는 upserts를 지원하는 RethinkDB를 사용하고있다. (SQL 문을 사용하지 않고) : https://github.com/rethinkdb/rethinkdb/issues/209. 두 번째 질문에도 답변 해 주셔서 감사합니다. 쿠키를 사용하여 실제로 실행하는 유일한 위험은 재생 공격이지만,이를 제한하기 위해 정상적인 만료 (7 일)를 계획하고 있습니다. 사용자가 관리자 또는 다른 사용자로 가장 할 수 없다면 지나치게 걱정하지 않아도됩니다. – elithrar
admin 사용자의 경우 만료 시간이 30-60 분 정도로 짧다고 생각하는 것이 좋습니다. 그들은 더 많은 피해를 줄 수 있습니다! 그래서 ... 현상금을받을 수 있습니까? :-) 더 좋은 대답이나 더 많은 정보를 기다리고 싶다면 멋지다. – Intermernet
(12 시간을 기다려야했습니다);) – elithrar