0

저는 Microsoft.AspNet.Identity를 처음 사용합니다. 사용자 정보하지만 암호가 내 데이터베이스에서Microsoft.AspNet.Identity MVC 토큰을 사용하지만 암호없이 자동으로 로그인하도록 시스템을 구성하는 방법

http://example.org/news/titlenew?userId=0f8fad5b-d9cb-469f-a165-70867728950e&token=abcxyzabczyieeieusjhjsyuwhjihsihywsuyhskuju

이 : 나는 URL 토큰을 가지고있다.

나는 이것을 원한다 : 누군가에게이 URL 토큰을 보내면 클릭하면 내 페이지로 올 것이다. 시스템은 URL에서 토큰을 자동으로 가져와 데이터베이스의 사용자와 인증한다.

유효한 경우 자동으로 내 시스템에 로그인하십시오. 그렇지 않으면 로그인 페이지로 이동하십시오.

startup.auth 또는 IdentityConfig에서 구성해야 할 필요가 있다고 생각하지만 어떻게되어 있는지 알 수 없습니다. 나는 신분을 처음으로 접했기 때문에 나를 인도 해주세요.

+0

사용자가 암호가 없다면 로그인 페이지가 어떻게됩니까? –

+0

일반 정품 인증 흐름을 사용하지 않는 이유는 무엇입니까? 사용자를 등록하고 링크를 보내 사용자에게 활성화하십시오. 사용자가 활성화 및 로그인 링크를 클릭합니다. –

+0

이것은 단지 손님이라는 것을 이해하십시오. 회원이 아닙니다. 그리고 저를 행사에 초대했을 때 한 페이지를 보여주고 싶었습니다. –

답변

0

실제로 당신이 제안하는 것은 URL을 사용하여 로그인하는 것입니다. 변경하거나 만료하지 않는 토큰을 사용합니다. 그것은 안전하지 않습니다. URL을 아는 사람은 누구나 사용자가 존재하는 한 리소스에 액세스 할 수 있습니다. 따라서 기본적으로 사용자를 식별하기 위해 AspNet ID의 목적을 우회합니다.

사용자는이 URL만으로 로그인하여 원치 않는 것보다 더 많이 노출 될 위험이 있습니다.

등록 절차를 보면 이메일 인증 코드를 보낼 수 있습니다. 그러나 ConfirmEmail 메서드의 특성이 'AllowAnonymous'이고 사용자가 나중에 로그인하지 않은 것을 볼 수 있습니다. 이메일을 확인하는 것입니다.

사용자를 인증하기 전에 사용자를 먼저 식별해야합니다. 자격 증명 (로컬 로그인)을 사용하거나 Google 또는 Facebook과 같은 외부 ID 공급자를 사용할 수 있습니다.

사용자가 로그인하기 전에이 코드를 입력해야하므로 또한, 링크를 클릭 한 후 이메일로 코드 (일회용 패스워드)를 보내 뭔가를 구현할 수 있습니다.

은 그러나 당신은 원하는 경우 민감한 정보 (개인 메시지)가없는 한 페이지를 표시하면 사용자에게 로그인 할 필요가 없습니다. TitleNew 메소드 ('AllowAnonymous'속성 추가)를 작성하고 (ConfirmEmail에서와 같이) URL의 코드를 검사하고 URL의 사용자 ID를 기반으로 개인 메시지가있는 페이지를 표시 할 수 있습니다.

+0

나는 토큰이 특정 기간 동안 만 작동 할 수 있다고 생각한다. 당신이 말하는 것은 사실입니다. 나는 그것을 좋아합니다. –

관련 문제