| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using EasyTemplate.Tool;
- using Microsoft.AspNetCore.Mvc;
- using RouteAttribute = Microsoft.AspNetCore.Mvc.RouteAttribute;
- namespace EasyTemplate.Blazor.Web.Controller;
- /// <summary>
- /// 注意,如果需要扫码登录或是支付回调,可以使用该控制器
- /// </summary>
- [ApiController]
- [Route("api/[controller]")]
- public class HomeController : ControllerBase
- {
- public HomeController(IHttpContextAccessor contextAccessor, SqlSugarRepository<SystemUser> user, INotificationService notificationService)
- {
- ContextAccessor = contextAccessor;
- User = user;
- NotificationService = notificationService;
- }
- /// <summary>
- /// 这里必须使用IgnoreAntiforgeryToken属性,绕过blazor的防伪验证
- /// </summary>
- /// <param name="userid"></param>
- /// <param name="name"></param>
- /// <param name="data"></param>
- /// <param name="phone"></param>
- /// <returns></returns>
- [HttpGet("scan_sign_in_call_back")]
- [IgnoreAntiforgeryToken] // <-- 关键特性:忽略该端点的防伪验证
- public async Task<IActionResult> ScanSignInCallback(long userid, string name, string data, string phone)
- {
- var user = await User.AsQueryable().FirstAsync(x => x.Id == userid);
- if (user == null)
- {
- //这里必须使用重定向,它会指向/wwwroot/html/error.html页面,该页面专门用于扫码登录报错
- //error.html的query参数包含:
- // code:错误代码
- // title:提示
- // message:错误信息
- // image:info,success,warning,error
- return Redirect("/html/error.html?code=504&title=提示&message=该账户不存在,请联系管理员&image=info");
- }
- return Redirect("/");//重定向到首页
- }
- /// <summary>
- ///
- /// </summary>
- private readonly IHttpContextAccessor ContextAccessor;
- /// <summary>
- ///
- /// </summary>
- private readonly SqlSugarRepository<SystemUser> User;
- /// <summary>
- ///
- /// </summary>
- private readonly INotificationService NotificationService;
- }
|