/
AccountController.cs
80 lines (49 loc) · 1.81 KB
/
AccountController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using System.Collections.Generic;
using CorMon.Core.Domain;
using CorMon.Application.Users;
using CorMon.Web.Api.Services.Jwt;
using CorMon.Core.JsonModels;
using CorMon.Resource;
using CorMon.Web.Api.Models;
namespace CorMon.Web.Api.Controllers
{
public class AccountController : BaseController
{
#region Fields
private readonly SignInManager<User> _signInManager;
private readonly UserManager<User> _userManager;
private readonly IUserService _userService;
private readonly IJwtService _jwtService;
#endregion
#region Ctor
public AccountController(IUserService userService, IJwtService jwtService, UserManager<User> userManager, SignInManager<User> signInManager)
{
_jwtService = jwtService;
_userService = userService;
_userManager = userManager;
_signInManager = signInManager;
}
#endregion
#region Public Methods
/// <summary>
///
/// </summary>
[HttpPost]
[Route("account/login")]
public async Task<PublicJsonResult> Login([FromBody] LoginViewModel model)
{
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, false);
if (!result.Succeeded)
return new PublicJsonResult { Result = false, Message = Messages.User_Login_Failed };
var user = await _userService.GetByEmailAsync(model.Email);
return new PublicJsonResult { Result = true, Token = _jwtService.GenerateJwtToken(user) };
}
#endregion
#region Private Methods
#endregion
}
}