public void getTokenFromResponse_Should_Return_Token() { //arrange //act OauthToken token = AvansOauthHelper.getTokenFormUri("authentification_url=https://publicapi.avans.nl/oauth/login.php&oauth_token=oauthtoken&oauth_token_secret=oauthsecret&oauth_callback_confirmed=true"); //assert Assert.Equal("oauthtoken", token.Token); }
public IActionResult AvansLogin(string returnUrl) { if (String.IsNullOrEmpty(returnUrl)) { return(StatusCode(400)); } //get request token string baseUrl = $"{this.Request.Scheme}://{this.Request.Host}"; var oauthToken = AvansOauthHelper.GetRequestToken(baseUrl, this.AvansOauthHelperOptions); //store the oauth token, secret and return url temporarily HttpContext.Session.SetString("oauth_token", oauthToken.Token); HttpContext.Session.SetString("oauth_secret", oauthToken.Secret); HttpContext.Session.SetString("returnUrl", returnUrl); //redirect to saml screen return(Redirect("https://publicapi.avans.nl/oauth/saml.php?oauth_token=" + oauthToken.Token)); }
public async Task <IActionResult> AvansCallback() { //get the token from the session var token = new OauthToken() { Token = HttpContext.Session.GetString("oauth_token"), Secret = HttpContext.Session.GetString("oauth_secret") }; var returnUrl = HttpContext.Session.GetString("returnUrl"); var verifier = HttpContext.Request.Query["oauth_verifier"]; OauthToken accesToken = AvansOauthHelper.GetAccesToken(this.AvansOauthHelperOptions, token, verifier); //clear session of temp data HttpContext.Session.Remove("oauth_token"); HttpContext.Session.Remove("oauth_secret"); HttpContext.Session.Remove("returnUrl"); string userInfo = AvansOauthHelper.GetUserInfo(this.AvansOauthHelperOptions, accesToken); var avansDetails = JObject.Parse(userInfo); var name = (string)avansDetails["nickname"]; var isEmployee = (string)avansDetails["employee"] == "true"; var email = (string)avansDetails["emails"][0]; var username = (string)avansDetails["accounts"]["username"]; var info = new UserLoginInfo("Avans", "Avans", "Avans"); ApplicationUser user = await this.GetOrCreateUser(email, username, name, info, isEmployee); var jwt = GenerateToken(user); returnUrl = returnUrl + "#/process-token?token=" + jwt; return(Redirect(returnUrl)); }