Born in Edinburgh, McLaughlin played non-League football for both Harrogate Railway Athletic and Harrogate Town.
Bradford City
He signed for Bradford City in May 2008. He had trained with Bradford for a year prior to his signing and combined playing for the two Harrogate clubs with a sports coaching degree at Leeds Metropolitan University. He made his league debut for Bradford City in the final match of the 2008–09 season, on 2 May 2009, against Chesterfield. McLaughlin had been due to make his debut earlier in the season, but was prevented by doing so because of injury. He signed a new one-year contract with Bradford City on 3 June 2009. McLaughlin signed a new three-year-contract in early June 2010. In the 2010–2011 season McLaughlin was in and out of the team, with Lenny Pidgeley also challenging for the goalkeeper spot. However, Pidgeley was released by Bradford at the end of the season. At the start of the following season McLaughlin fell ill, and Matt Duke was brought in as first choice goalkeeper. On 27 March 2012, he received a 3 match ban after being sent off against Crawley Town as he took part in a post-match brawl. On 17 September 2012, McLaughlin was named in the Football League Team of the Week for League Two. After appearing as a substitute in the 2013 League Cup Final, McLaughlin enjoyed an extended run in the first-team, and played in the League Two play-off Final in May 2013. Following the match, and Bradford City's subsequent promotion, McLaughlin was told by the club he had a future with them, after a clause in his contract to extend it by one year was utilised. Ahead of the 2013–14 season, recently departed goalkeeper Matt Duke said he believed McLaughlin would be the club's new first-choice goalkeeper, though McLaughlin later stated that he felt he still had work to do to prove himself as the club's first-choice keeper. In December 2013, McLaughlin stated that the club had had a "great start to the season", though he felt that recent performances had been poor. Later that month, manager Phil Parkinson praised McLaughlin's performances. As of April 2014, McLaughlin was one of only two players to have appearance in every league match for the club. McLaughlin left the club in July 2014 after failing to agree a new contract. McLaughlin stated that he left the club "on a sour note."
Burton Albion
McLaughlin signed a one-year contract with Burton Albion on 23 July 2014. After winning promotion with Burton to League One, McLaughlin stated how excited he was at the prospect of meeting former club Bradford City in the league. He was released by Burton Albion at the end of the 2016–17 season.
Heart of Midlothian
After a trial spell, McLaughlin signed a one-year contract with Scottish Premiership club Heart of Midlothian in August 2017. He made his first appearance for Hearts on 9 September, in a goalless draw against Aberdeen at Murrayfield. He left Hearts on 31 May 2018, at the expiry of his contract.
Sunderland
McLaughlin signed for League One club Sunderland in June 2018. In October 2018 he said he was comfortable with the pressure for playing for such a big team.
Rangers
On 23 June 2020, McLaughlin joined Rangers on a two-year deal.
International career
McLaughlin was called up to the Scotland national team squadfor the first time in March 2018, and again in May 2018. He made his first full international appearance on 2 June 2018, in a 1–0 defeat against Mexico. He was without a club contract at the time, as his debut came just a few days after he had left Hearts.