-
Notifications
You must be signed in to change notification settings - Fork 110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Login with LinkedIn account. #414
Login with LinkedIn account. #414
Conversation
- Added linkedin login. - Fixed error on profile screen loading job opportunities by user because of null JobOpportunityLikes.
default: | ||
return new UserProfile(); | ||
} | ||
} | ||
|
||
private UserProfile GetFromLinkedIn(ClaimsIdentity identity) | ||
{ | ||
var email = identity.FindFirst(x => x.Type.Contains("emailaddress")).Value; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
check for null right here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Puedes hacer algo como identity.FindFirst(x => x.Type.Contains("emailaddress"))?.Value para evitarte el if block. Esto te devuelve null si en algún momento la expresión da null y así evitas el NullPointerException. Más información aquí
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@RaulMonteroC y que pasa si value is null? en la linea 34?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Acabdo de darme cuenta con tu pregunta que esta solución crea el bug que en caso de que identity sea null el método lance igual una exepción (NullPointerException) en la linea 34.
Se podria hacer el mismo null-check para la linea 34 pero terminariamos devolviendo un UserProfile que tiene propiedades con valores nulos lo cual no hace mucho sentido. Sería más interesante envolverlos en un if block que revise la variable identity tenga valor y entonces aplicar la lógica. En caso de que sea nulo se saliera del método.
La idea sería algo como lo propuesto debajo. Le agregue una validación al email en caso de que el identity no contenga ese claim pues la variable email se le asigne un empty string.
private UserProfile GetFromLinkedIn(ClaimsIdentity identity)
{
if(identity != null)
{
var email = identity.FindFirst(x => x.Type.Contains("emailaddress"))?.Value ?? ""
var name = identity.Name;
return new UserProfile
{
Email = email,
Name = name
};
}
return null;
}
No he probado el código, pero con esto puedes tener una idea de lo que se quiere lograr.
@anyeloamt compilation Error |
No debería fallar al compilar. El CI de teamcity dice Es decir, que el extension method Btw, Aquí funciona nítido y las pruebas pasan, seguiré revisando a ver qué pasa. |
En mi maquina funciona? |
ba01cc3
to
86f254c
Compare
86f254c
to
b0c02bd
Compare
What's new?
Screenshots:
Fixes #302