Changes between Version 10 and Version 11 of UseCaseImplementationsFinal


Ignore:
Timestamp:
03/02/26 16:51:14 (3 days ago)
Author:
231067
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementationsFinal

    v10 v11  
    99|| 17 || Контакт со ментор (променет) || Студент ||
    1010
    11 И дополнително се имплементирани E-mail нотификации, поврзани со inbox на самиот сајт.
     11Дополнително се имплементирани E-mail нотификации, поврзани со inbox на самиот сајт.
    1212
    1313----
     
    4848}}}
    4949
     50Овој код ја конфигурира OAuth2 автентикацијата преку Google. ClientId и ClientSecret се вчитуваат од конфигурацијата на апликацијата. Доколку вредностите се валидни, се регистрира Google authentication middleware кој овозможува редирекција кон Google, како и обработка на callback барањето по успешна автентикација. CallbackPath ја дефинира патеката каде Google ќе го врати корисникот, додека CookieManager управува со сесијата.
     51
    5052{{{
    5153// POST: /Account/ExternalLogin
     
    5961    return new ChallengeResult(provider, redirectUrl);
    6062}
    61 
    62 
     63}}}
     64
     65Методот {{{ ExternalLogin }}} иницира процес на најава преку надворешен OAuth2 провајдер. Се генерира redirect URL кон методот {{{ ExternalLoginCallback }}}, по што се враќа ChallengeResult кој го пренасочува корисникот кон избраниот провајдер (Google, Microsoft или GitHub).
     66
     67{{{
    6368// POST: /Account/ExternalLoginConfirmation
    6469[HttpPost]
     
    178183        }
    179184    }
    180 
    181 
     185}}}
     186
     187Методот {{{ ExternalLoginConfirmation }}} се повикува по успешна OAuth2 автентикација. Неговата функција е да креира нов корисник во системот и да го поврзе со надворешниот login провајдер.
     188
     189Методот најпрво ги вчитува информациите од надворешниот провајдер. Креира нов објект од тип {{{ Student }}} или {{{ Mentor }}}, во зависност од избраниот тип на корисник, па го зачувува корисникот во базата преку {{{ UserManager.CreateAsync }}}. Го поврзува надворешниот login со локалниот корисник преку {{{ UserManager.AddLoginAsync }}} и  ги зачувува предметите и темите поврзани со корисникот, доколку се внесени.
     190
     191{{{
    182192[HttpPost]
    183193[ValidateAntiForgeryToken]
     
    206216
    207217}}}
     218
     219Методот {{{ LinkLogin }}} овозможува поврзување на дополнителен OAuth2 провајдер со веќе постоечки кориснички профил. Ова му овозможува на корисникот да се најавува преку повеќе провајдери.
     220
     221Методот {{{ LinkLoginCallback }}} го финализира процесот на поврзување на надворешниот login со тековниот корисник. Доколку операцијата е успешна, новиот login провајдер се додава во корисничкиот профил.
    208222
    209223= Ментор =